Rejestracja
Przegląd
System rejestracji obejmuje tworzenie kont rodzica i dziecka w aplikacji Flutter. Nie używamy haseł — logowanie odbywa się przez jednorazowe kody na email. Rodzic powiązuje swoje konto z kontem dziecka. Logowanie do manager-content działa na tej samej zasadzie — jednorazowy kod.
Konta w App (Flutter)
App obsługuje dwa typy kont: rodzic i dziecko. Oba tworzone są w tej samej aplikacji.
Rejestracja Rodzica
Ekran powitalny → "Jestem rodzicem"
↓
Email → jednorazowy kod weryfikacyjny na email
↓
Wpisanie kodu → konto rodzica utworzone
↓
Powiązanie z dzieckiem (lub zaproszenie dziecka)Rejestracja Dziecka
Ekran powitalny → "Jestem dzieckiem"
↓
Rok urodzenia → automatyczne przypisanie grupy wiekowej
↓
Język (np. polski) → domyślny kraj na globusie (Polska)
↓
Wybór awatara
↓
PIN (4-cyfrowy) do logowania
↓
Konto utworzone → losowa nazwa (np. "Kosmonauta_7842")
↓
Oczekiwanie na powiązanie z rodzicemDziecko nie podaje imienia przy rejestracji — system nadaje losową nazwę. Dziecko może zmienić nazwę później w profilu (na statku).
Dane rejestracyjne
| Pole | Rodzic | Dziecko |
|---|---|---|
| Tak | Nie | |
| Hasło | Nie — kody jednorazowe | Nie |
| Imię/nazwa | Nie (opcjonalnie w profilu) | Nie — losowa nazwa |
| Rok urodzenia | Nie | Tak → grupa wiekowa |
| Język | Nie | Tak (np. polski → Polska) |
| Awatar | Nie | Tak |
| PIN | Nie | Tak (4-cyfrowy) |
Powiązanie Rodzic ↔ Dziecko
Rodzic inicjuje powiązanie ze swoim dzieckiem. Konto dziecka nie może istnieć bez powiązanego rodzica.
Powiązanie działa przez jednorazowy 8-znakowy kod (litery + cyfry) — ta sama mechanika co logowanie do manager-content.
Metoda 1: Przez App (kod)
Rodzic i dziecko mają app na tym samym lub różnych urządzeniach:
Rodzic otwiera app → "Dodaj dziecko"
↓
App generuje jednorazowy kod powiązania (8 znaków, np. "A3K7M2X9")
↓
Dziecko wpisuje kod w swojej app
↓
Powiązanie rodzic ↔ dziecko zapisaneMetoda 2: Przez Email (bez app rodzica)
Dla rodziców, którzy nie chcą instalować app — alternatywa emailowa:
Dziecko tworzy konto w app
↓
Ekran "Powiąż z rodzicem" → "Wyślij kod na email"
↓
Dziecko wpisuje email rodzica
↓
System wysyła jednorazowy kod (8 znaków) na email rodzica
↓
Rodzic podaje kod dziecku
↓
Dziecko wpisuje kod w app
↓
Powiązanie zapisane (rodzic ma konto emailowe bez app)W tej metodzie rodzic nie musi mieć app — konto rodzica tworzone jest automatycznie na podstawie emaila.
Logowanie
Logowanie Dziecka (app)
- Wybór profilu (jeśli wiele kont na urządzeniu)
- Wpisanie 4-cyfrowego PIN
Logowanie Rodzica (app)
- Wpisanie emaila
- Jednorazowy kod weryfikacyjny na email
- Wpisanie kodu → zalogowano
Brak haseł — za każdym razem nowy kod na email.
Logowanie do Manager-Content
Logowanie do manager-content działa tak samo jak powiązanie — jednorazowy 8-znakowy kod:
Sposób 1: Kod z app
Rodzic lub dziecko otwiera app → Ustawienia → "Kod do manager-content"
↓
App generuje jednorazowy kod (8 znaków, np. "B5T8N3P1")
↓
Na stronie manager-content → wpisanie kodu
↓
ZalogowanoKod można wygenerować zarówno z konta rodzica jak i konta dziecka w app.
Sposób 2: Kod emailowy (bez app)
Strona logowania manager-content → "Zaloguj przez email"
↓
Wpisanie emaila rodzica
↓
Jednorazowy kod (8 znaków) wysyłany na email
↓
Wpisanie kodu → zalogowanoTa metoda jest dla rodziców, którzy nie mają app.
Jednorazowe kody
Wszystkie kody w systemie działają na tej samej zasadzie:
| Użycie | Kod | Wygasa po |
|---|---|---|
| Powiązanie rodzic ↔ dziecko | 8 znaków (litery + cyfry) | 15 minut |
| Logowanie do manager-content z app | 8 znaków (litery + cyfry) | 5 minut |
| Logowanie rodzica do app (email) | 8 znaków (litery + cyfry) | 10 minut |
| Logowanie do manager-content (email) | 8 znaków (litery + cyfry) | 10 minut |
Kody są jednorazowe — po użyciu tracą ważność.
Onboarding (Flutter app)
Po rejestracji dziecko przechodzi krótki onboarding:
- Witaj na Lumos Islands! — animacja powitalna
- To jest globus — pokazanie nawigacji
- Wejdź do swojego kraju — automatyczne przejście do kraju dopasowanego z języka (np. polski → Polska)
- Twoja pierwsza lokacja — wskazanie Camp jako punktu startowego
- Wykonaj pierwsze zadanie — proste zadanie tutorialowe
- Zdobyłeś XP! — wyjaśnienie systemu nagród
Wiele dzieci
Rodzic może powiązać wiele dzieci ze swoim kontem:
- Każde dziecko ma osobny profil w app
- Rodzic widzi wszystkie dzieci w manager-content
- Może przełączać się między dashboardami dzieci
Bezpieczeństwo
COPPA & GDPR
- Dzieci poniżej 13 lat: konta zarządzane przez rodziców
- Rodzic musi wyrazić zgodę na przetwarzanie danych
- Minimalizacja zbieranych danych (bez imion, tylko rok urodzenia)
- Prawo do usunięcia konta (rodzic może usunąć w manager-content)
Prywatność
- Losowa nazwa dziecka — żadne dane osobowe przy rejestracji
- Nazwa widoczna tylko dla powiązanych dorosłych
- Brak możliwości kontaktu między dziećmi (brak chatu)
- Dane lokalizacyjne nie są zbierane
- Brak haseł w systemie — eliminacja ryzyka wycieku haseł
Podsumowanie
| Scenariusz | Metoda |
|---|---|
| Rejestracja rodzica | Email → jednorazowy kod → konto |
| Rejestracja dziecka | Rok urodzenia + język + awatar + PIN → losowa nazwa |
| Powiązanie (app) | 8-znakowy kod z app rodzica → dziecko wpisuje |
| Powiązanie (email) | 8-znakowy kod na email rodzica → dziecko wpisuje |
| Logowanie dziecka | PIN 4-cyfrowy |
| Logowanie rodzica (app) | Email → jednorazowy kod |
| Logowanie manager-content (app) | 8-znakowy kod z app |
| Logowanie manager-content (email) | Email → jednorazowy kod |