Files
2026-09-02 08:21:27 +02:00

95 lines
3.9 KiB
Markdown

# 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.