# Historia zmian Format wedlug [Keep a Changelog](https://keepachangelog.com/pl/1.1.0/), wersjonowanie wedlug [SemVer](https://semver.org/lang/pl/). ## [1.0.0] - 2026-08-31 Pierwsze wydanie produkcyjne. Zakres obejmuje pelny cykl zycia wydarzenia szkoleniowego oraz platforme kursow online. ### Webinary - Tworzenie i edycja wydarzen z terminem, limitem miejsc i strefa czasowa - Publiczna strona zapisu z trescia budowana w edytorze wizualnym - Zapis uczestnika ze zgodami, potwierdzenie e-mail z zalacznikiem kalendarza - Rezygnacja z udzialu przez wlasny link uczestnika - Kopiowanie webinaru przy szkoleniach cyklicznych - Harmonogram przypomnien e-mail i SMS, konfigurowalny per wydarzenie - Podsumowanie po webinarze dla uczestnikow i zestawienie dla prowadzacego - Eksport listy zapisanych do CSV ### Spotkanie na zywo - Wspolny ekran: obraz, czat, pytania, zadania i zapytania ofertowe - Trzy role w pokoju: prelegent, uczestnik, uczestnik z glosem - Kolejka zgloszen do zabrania glosu i tryb otwartego mikrofonu - Moderacja czatu i pytan z panelu prowadzenia - Glosowanie na pytania, jeden glos na osobe - Banery i reklamy w sali, ze statystyka wyswietlen i klikniec - Odnotowywanie obecnosci na podstawie sesji, nie pojedynczej flagi ### Wideo - Wymienny dostawca przez interfejs `VideoProvider`: NONE, LiveKit, Jitsi, Daily - Tryb NONE jest rownoprawny: obraz w zewnetrznym narzedziu, interakcje u nas - Wlasny serwer LiveKit w profilu Compose, wraz z TURN, Redisem i Egress - Nagrania i materialy we wlasnym skladzie MinIO, z kontrola widocznosci - Obsluga naglowka Range, czyli przewijanie nagran ### Akademia - Kursy z podzialem na moduly i lekcje, piec rodzajow lekcji - Konta kursantow niezalezne od kont panelu, z wlasnym haslem i tokenem - Publiczna czesc: strona glowna, lista kursow, strona kursu, cennik - Odtwarzacz z liczeniem postepu, prog ukonczenia sprawdzany po stronie serwera - Quiz konczacy kurs, z losowanym zestawem pytan i limitem czasu - Platnosci Autopay z obsluga notyfikacji ITN - Panel kursantow, postepow i statystyk kursu ### Certyfikaty - Certyfikaty uczestnictwa w webinarze i ukonczenia kursu, jedna numeracja - Plik PDF generowany raz i przechowywany, z osadzona czcionka - Publiczna weryfikacja po numerze, zwracajaca minimum danych - Uniewaznianie z notatka, przekrojowy ekran dla calej instancji ### Kontakty - Baza kontaktow niezalezna od zapisow na wydarzenia - Grupy, import z CSV z podgladem przed wykonaniem - Zaproszenia na webinar ze sledzeniem skutecznosci - Wypisanie z marketingu w dwoch krokach ### Bezpieczenstwo i eksploatacja - Uwierzytelnianie JWT, role ADMIN i MODERATOR, blokada po nieudanych logowaniach - Jedno logowanie dla panelu i Akademii, rozstrzygane po stronie serwera - Tryb bezpieczny wysylki e-mail i SMS, **domyslnie wlaczony** - Limity godzinowe wysylki, chroniace przed lawina po bledzie w danych - Wypis stanu konfiguracji krytycznej przy starcie aplikacji - Skrypt `check-config.sh` odmawiajacy startu przy niebezpiecznej konfiguracji - Skrypty kopii zapasowej i odtworzenia, obejmujace baze i pliki - Migracje schematu wylacznie przez Flyway ### Interfejs - Panel administracyjny pod prefiksem `/panel`, korzen nalezy do goscia - System projektowy HydroNexis, tokeny w `tailwind.config.js` - Kazdy ekran dziala na telefonie, od 320 px bez przewijania w poziomie - Paginacja na kazdej liscie, domyslnie 25 wierszy --- ## Zasady wersjonowania - **Wersja glowna** (1.x.x -> 2.0.0): zmiana wymagajaca dzialania przy aktualizacji, na przyklad recznej migracji danych albo zmiany konfiguracji. - **Wersja pomocnicza** (1.0.x -> 1.1.0): nowa funkcja, aktualizacja bez dodatkowych czynnosci. - **Poprawka** (1.0.0 -> 1.0.1): naprawa bledu, bez zmiany zachowania. Wersje ustawia sie w **dwoch miejscach**: `backend/pom.xml` i `frontend/package.json`. Obie musza byc zgodne, bo wersja backendu trafia do odpowiedzi `/api/health` i sluzy do ustalenia, co faktycznie dziala u klienta.