REJESTRACJA & LOGOWANIE
Metody logowania
Formularz email i haslo. Haslo wymaga: 8+ znakow, wielka litera, mala litera, cyfra. Walidacja Zod w czasie rzeczywistym.
Przycisk "Continue with Google" — OAuth przez Google. Jesli konto nie istnieje, tworzy nowe i przechodzi do onboardingu.
Rejestracja
Email, haslo, potwierdzenie hasla. Zielone ptaszki przy spelnionych regolach hasla. Po rejestracji automatyczne logowanie.
Odzyskiwanie hasla
Podaj email → "Send Reset Link" → system wysyla email z linkiem do resetu. Ekran sukcesu z ikona koperty.
Onboarding (4 kroki)
- Username — sprawdzanie dostepnosci w czasie rzeczywistym (500ms debounce). Zielony = wolny, czerwony = zajety.
- Zdjecie — wybierz z galerii, kadrowanie kwadrat, kompresja 0.8
- Telefon — miedzynarodowy format (+41), SMS kod 6-cyfrowy. Mozna pominac ("Skip & Get Started")
Wybor Miasta
Po onboardingu: wyszukiwarka miast (min. 2 znaki). Wybierz miasto → potwierdzenie → zaladowanie danych lokalnych → przekierowanie do mapy.
MAPA
Pelnoekranowa interaktywna mapa z markerami lokali, eventow, znajomych i pobliskich uzytkownikow.
Elementy interfejsu
Szklana pilulka u gory ekranu. Szukaj po nazwie lokalu, kategorii, adresie. Max 8 wynikow z nazwa, kategoria, ocena Google i odleglosc.
Wskaznik pulsujacy energii miasta. 5 poziomow: Quiet → Warming Up → Getting Busy → Hot Tonight → Peak Night. Obliczany z crowd levelu wszystkich lokali.
Poziomy scroll chipow filtrujacych:
- Miasto (globus) — zmien miasto
- Heatmap (plomien) — on/off mapa ciepla crowd
- Center (celownik) — wycentruj na GPS
- Games (gamepad) — otwarz Games Hub
Markery na mapie
| Typ | Wyglad | Opis |
|---|---|---|
| Lokale | Kolorowe piny | Partnerskie maja zlota gwiazdke. Klik otwiera podglad z nazwa, kategoria, ocena, crowd level. |
| Eventy | Piny z data | Dzisiejsze eventy widoczne na mapie. |
| Znajomi | Zielone pinezki | Znajomi z Party Mode. Max 30, real-time. |
| Nearby Users | Rozowe pilulki | Nieznajomi z Party Mode. Nazwa, odleglosc, + emoji rankingowe (👑🏆💎) dla top graczy. |
Detekcja miasta
Jesli GPS wskazuje inne miasto niz zapisane, wysuwa sie baner "Wyglada na to, ze jestes w [Miasto]" z przyciskiem "Switch".
Szczegoly lokalu
Kliknij marker → podglad na dole → "View Details" otwiera pelny ekran:
- Karuzela zdjec (poziomy scroll)
- Nazwa, badge "Partner" (zloty), adres
- Ocena Google (gwiazdki) + liczba recenzji + poziom cen ($ symbole)
- Kategorie (niebieskie chipy)
- Crowd Indicator: Empty Moderate Busy Packed
- Szybkie akcje: Nawigacja, Telefon, Strona www
- Godziny otwarcia (7 dni, dzisiaj podswietlony)
- Nadchodzace eventy
- Menu giftu/drinkow
- "Send a Gift" przycisk (tylko partner venues ze Stripe)
Auto-presence
Kiedy jestes w zasiegu ~100m od lokalu, aplikacja automatycznie raportuje Twoja obecnosc. To dziala w tle i zasilacze crowd levels, check-iny i system gier.
NEARBY / SOCIAL
Party Mode
Party Mode to serce zakladki Social. Wlacz przelacznik, zeby byc widocznym dla innych uzytkownikow na mapie i w zakladce Near Me. Trwa 4 godziny, z odliczaniem na ekranie. Kiedy aktywny, karta sweci neonowym rozowym blaskiem.
4 Zakladki
Wymaga Party Mode ON. Siatka 4 kolumny — avatary uzytkownikow w poblizu z odlegloscia. Twoje wlasne story na gorze (klik = tworz lub ogladaj). Klik na avatar = otworz story lub profil.
Lista znajomych z online status (zielona/szara kropka). Story ring (gradient) jesli przyjaciel ma aktywne Loop. Klik = ogladaj story lub profil.
Siatka partnerow (DJ, lokale, organizatorzy) z aktywnymi stories. Klik = ogladaj ich Loop.
4 sub-zakladki:
Top 3 maja medale (🥇🥈🥉). Top 100 neonowe animowane nazwy. System tierow: 👑 Royalty → 💎 Diamond → 🔥 Fire → ⭐ Star → ✨ Rising → 🎯 Active → 🔄 Looper → 🆕 Newcomer
EVENTS
Lista eventow
- Wyszukiwarka (tytul, lokal, gatunki, lineup)
- 3 segmenty: Tonight (z licznikiem) | This Week | All
- Filtr typu: All | Club | Concert | Festival
- Karty eventow z pull-to-refresh
Szczegoly eventu
- Obrazek hero 250px (gradient fallback wg typu: fioletowy=Club, niebieski=Concert, zolty=Festival, zielony=Private)
- Tytul, lokal (klikalny), data/godzina
- Gatunki (niebieskie chipy)
- Opis
- Lineup — chipy DJ z avatarami (klik = profil DJ)
- "Join Guestlist" — widoczny jesli event ma guestliste
- "Get Tickets" — widoczny jesli event sprzedaje bilety
- "Buy on External Site" — jesli link zewnetrzny
CZAT & WIADOMOSCI
Lista rozmow
- Stories grid na gorze (wlasne + kontaktow)
- 2 zakladki: Chats | Requests (z badge nieprzeczytanych)
- FAB (+) → "New Chat" (Nearby) lub "New Group"
- Swipe-to-delete na rozmowach
Ekran rozmowy
- Tekst — zwykle wiadomosci
- Zdjecia — podglad inline, fullscreen tap
- Wideo — player fullscreen
- Pliki — zalaczniki
- Gift offer — systemowe z info o drinku
- System — powiadomienia grupowe
- Long-press → popup menu
- Usun (wlasne, "This message was deleted")
- Edytuj (oznaczenie "edited")
- Przeslij dalej (oznaczenie "Forwarded")
Watch Together
Zsynchronizowane ogladanie YouTube w czacie. Host wkleja link — player pojawia sie u gory czatu dla obu osob. Host kontroluje play/pause/seek, viewer podaza w czasie rzeczywistym.
Czaty grupowe
- Tworzenie: Nazwa grupy + wybor znajomych (checkboxy) → "Create Group"
- Info grupy: Avatarki czlonkow, edycja nazwy, "Add Members", "Leave Group"
- Kazdy czlonek ma unikalny neonowy kolor nicku (z palety NEON_PALETTE)
Message Requests
Wiadomosc od osoby niebedacej znajomym trafia do zakladki Requests. Na gorze czatu pojawia sie pasek "Accept" / "Decline".
PROFIL & USTAWIENIA
Moj profil
- Story Avatar (klik = tworz/ogladaj Loop)
- Imie, @username, bio
- Statystyki 2x2: Friends (pink), Tickets (blue), Loops Sent (gold), Loops Received (green)
- Sekcja Games: level, punkty, streak, odznaki (max 6), "X venues explored"
- Party Mode toggle
Menu profilu
| Pozycja | Opis |
|---|---|
| Friend Requests | Lista zapytke znajomych z Accept/Decline |
| My Tickets | Portfel biletow z kodami QR |
| My Guestlists | Guestlisty z QR i statusem |
| Gift Orders | Wyslane/otrzymane gifty z QR |
| My Loops | Twoje stories ze statusem moderacji |
| Games | Otwiera Games Hub |
| Business Account | Rejestracja/dashboard biznesowy |
| Settings | Ustawienia konta |
| Sign Out | Wylogowanie |
Profil innego uzytkownika
- Avatar, imie, username, bio, liczba znajomych
- Badge "Party Mode" (pulsujacy rozowy) jesli aktywny
- Przyciski: Add Friend (status: wysij/zaakceptuj/juz znajomy) | Message (pulsujacy niebieski) | Send Gift (neonowy rozowy flash)
- Menu (3 kropki): Report (kategorie: Inappropriate/Harassment/Spam/Impersonation/Other) | Block
Ustawienia
- Zmien avatar (ImagePicker, kwadrat)
- Zmien imie
- Zmien bio (200 znakow)
- Username (tylko do odczytu)
- Miasto — wyszukaj i zmien (wymaga restartu)
- Jezyk — 7 jezykow z flagami
- Legal — Privacy Policy, EULA
LOOPS / STORIES
Tworzenie Loop
Ogladanie Loops
- Pelny ekran — media wypelnia caly ekran
- Paski postepu na gorze (jeden na story)
- Header: avatar + imie + czas
- Nawigacja: tap prawo (70%) = nastepne, tap lewo (30%) = poprzednie, swipe down = zamknij
- Wideo odtwarza sie automatycznie
Reply with Loop
Story-to-Story — odpowiadaj na Loops innymi Loops! Przycisk "Reply with Loop" (gradient pink → purple). Mozesz dodac emoji reakcje (🔥🍸🎧💃👍❤️😂🤩). Odpowiedzi pojawiaja sie jako babelki avatarki na dole oryginalnego Loopa. Thread nawigacja — stackowanie, wchodzisz glebiej i wracasz.
Zarzadzanie Loops
- Wlasne: ikona kosza (usun) + ikona "+" (dodaj kolejne)
- Licznik wyswietlen (ikona oka) + liczba odpowiedzi
- Obce: przycisk Report (flaga)
- My Loops (z profilu): lista z statusami — Under Review (bursztynowy), Published (zielony), Rejected (czerwony z tagami powodu)
Moderacja stories
Kazdy Loop przechodzi przez AI moderacje. Status: PENDING → APPROVED (auto-publikacja) lub QUARANTINED (wymaga decyzji admina).
GIFT SYSTEM (DRINKI)
Wyslij komus drinka w partnerskim lokalu! Platnosc przez Stripe, odbiorcga pokazuje QR barmanowi.
Jak wyslac gift
Mozna tez wyslac bezposrednio z: profilu uzytkownika (przycisk Gift), szczegollow lokalu ("Send a Gift"), lub czatu.
Status zamowienia
Odmowa: REJECTED (auto-refund) | Wygasniety: EXPIRED (auto-refund po timeout)
Gift Orders (z profilu)
- 2 zakladki: Sent | Received
- Wyslane: sledzenie statusu zamowienia
- Otrzymane PAID: przyciski "Accept" / "Decline"
- Otrzymane ACCEPTED/READY: rozwijany kod QR do pokazania barmanowi
BILETY
Kupowanie biletow
- Lista typow biletow: nazwa, opis, cena CHF, pozostale sztuki
- Selektor ilosci (- / +) per typ, max = dostepne
- Podsumowanie + przycisk "Pay"
- Zabezpieczenie przed podwojnym obciazeniem (idempotency key)
Portfel biletow (My Tickets)
| Status | Wyglad | Opis |
|---|---|---|
| VALID | Kod QR 200px | Pokaz przy wejsciu. "Show at entrance" |
| USED | Ikona checkmark | Bilet wykorzystany (zeskanowany) |
| REFUNDED | Czerwony badge | Bilet zwrocony |
GUESTLISTY
Dolaczanie do guestlisty (user)
Statusy wpisow
| Status | Opis |
|---|---|
| PENDING | Zaproszenie (przyciski Accept/Decline) |
| CONFIRMED | Potwierdzone — kod QR widoczny |
| CHECKED_IN | Zeskanowany przy wejsciu |
| CANCELLED | Anulowane |
GEO-GAMES
Pelna instrukcja systemu gier znajduje sie w oddzielnym dokumencie: GEO-GAMES SYSTEM MANUAL
Skrocona wersja:
10+ pts za check-in + bonusy. Levele rosna z punktami (bez limitu). Streak za kolejne noce.
5 kategorii: Explorer, Venue, Streak, Social, Special. 4 rzadkosci: Common, Rare, Epic, Legendary.
Daily, Weekly, Monthly, Scavenger Hunt. Auto-generowane. 20-350 pts nagrody.
3 tryby: Solo, Group, Mystery. Min 3 lokale. +15 pts/lokal + 50 pts bonus za ukonczenie.
Mayor lokalu = gracz z najwieksza liczba wizyt w tygodniu. Korona 👑 na mapie.
Tygodniowe i miesieczne per miasto. Tiers: 👑Royalty → 💎Diamond → 🔥Fire → ⭐Star → ✨Rising. Badge na mapie dla top 50.
BUSINESS ACCOUNT
Typy kont biznesowych
Zarzadzaj lokalem, menu giftu, zamowieniami, biletami, guestlistami, personelem.
Profil artysty, guestlisty, eventy, skaner.
Tworzenie eventow, sprzedaz biletow, guestlisty.
Rejestracja
- Krok 1: Wybierz lokal z listy lub stworz nowy
- Krok 2: Pelnae imie, numer KRS (CHE-XXX), zdjecie dowodu, dokument biznesowy
- Krok 3: Przegad + "Submit for Verification"
- Krok 1: Profil (DJ: stage name + gatunki + bio / Org: nazwa firmy + opis)
- Krok 2: Weryfikacja tozsamosci (imie + dowod)
Po weryfikacji: status "Review in progress (1-2 business days)" + opcja "Connect Stripe".
Dashboard
- UNVERIFIED — "Start Verification"
- PENDING — "Reviewing 1-2 days"
- REJECTED — "Resubmit Documents"
- VERIFIED — pelny dostep
- Nie polaczony: "Connect Stripe" (pomaranczowy)
- Onboarding: "Complete Setup"
- Aktywny: "Payments Active" (zielony) + link do Stripe Dashboard
Funkcje biznesowe
| Funkcja | Venue Owner | DJ | Organizer |
|---|---|---|---|
| Revenue stats | ✅ | — | — |
| Gift Menu | ✅ | — | — |
| Gift Orders | ✅ | — | — |
| Events CRUD | ✅ | ✅ | ✅ |
| Guestlists | ✅ | ✅ | ✅ |
| QR Scanner | ✅ | ✅ | ✅ |
| Staff mgmt | ✅ | — | — |
| Stripe Connect | ✅ | ✅ | ✅ |
Gift Menu (Venue Owner)
- Lista drinkow: miniatura, nazwa, kategoria, cena CHF, dostepnosc (switch)
- FAB (+) do dodawania: zdjecie, nazwa, cena, kategoria (Cocktail/Beer/Wine/Mixed/Shot)
- Edycja i usuwanie istniejacych pozycji
Zarzadzanie eventami
- Lista eventow z bannerem, tytul, data, type badge, Tickets/Guestlist badge
- Tworzenie: banner, tytul, opis, data start/end, typ eventu, gatunki (20 opcji), typy biletow (nazwa, cena, ilosc)
- Venue Owner: lokal automatyczny. Organizer: wyszukiwarka lokali.
Zarzadzanie guestlistami
- Lista z open/closed status, liczba wpisow
- Tworzenie: nazwa, max wpisow, opcjonalny link do eventu
- Szczegoly: zapraszanie po username, lista wpisow ze statusem
- Udostepnianie linkiem (native share)
QR Scanner
Kamera skanuje QR — serwer weryfikuje — sukces (imie, typ) lub blad. Reczne wpisywanie kodu tez mozliwe.
Staff
- Zapraszanie po username, rola: Staff lub Owner
- Staff widzi uproszczony dashboard (bez Stripe, revenue)
- Usuwanie czlonkow zespolu (nie owner)
JEZYKI & WALUTY
Obslugiwane jezyki
English
Deutsch
Francais
Espanol
Italiano
Polski
Portugues
Zmiana jezyka: Profil — Settings — Language. Zmiana natychmiastowa bez restartu.
Waluta
Wszystkie ceny w CHF (frank szwajcarski). Platnosci przez Stripe PaymentSheet. Biznesy wymagaja Stripe Connect.
Geolokalizacja
| Parametr | Wartosc | Uzycie |
|---|---|---|
| Geohash precyzja 5 | ~5km x 5km | Party Mode / nearby discovery |
| Geohash precyzja 7 | ~150m x 150m | Pozycja na mapie |
| Auto-presence range | 100m | Check-in / crowd level |
| Nearby limit | 50 osob | Near Me + mapa |
| Friends limit | 30 osob | Markery na mapie |
QR Codes
| Typ | Format | Uzywany przez |
|---|---|---|
| Bilet | ID dokumentu | Scanner → Tickets |
| Guestlist | ID wpisu | Scanner → Guestlist |
Real-time
Real-time listeners: czaty, gifty, stories, game profile, crawl, guestlisty, friend online status. Dane zyja — bez odswiezania.