Logger zawodów krótkofalarskich dla harcerzy SP6ZHP
symulacja, nauka i rywalizacja w jednym
Klub SP6ZHP szkoli harcerzy w zakresie krótkofalarstwa – emisji, procedur radiowych i pracy na falach krótkich. Zawody to klasyczna forma nauki przez praktykę: kto więcej nawiąże łączności, kto szybciej, kto dokładniej. Problem był prosty – brakowało narzędzia. Takiego, które działa w przeglądarce na telefonie, nie wymaga instalacji i nie wysypie się w środku zawodów.
Napisałem to od zera, pro bono. Bo takie rzeczy warto robić. Ostatnia edycja zawodów odbyła się 22 marca 2026 – 14 kursantów, 2 rundy, zero problemów.
Co robi aplikacja
Każdy harcerz loguje się loginiem (np. ZHP013) i hasłem, po czym może
logować nawiązane łączności (QSO) w czasie trwania rundy zawodów.
System sam pilnuje czasu, blokuje logowanie poza rundami i waliduje duplikaty.
- Logowanie QSO – znak stacji, raport RST, pasmo. Każde QSO jest walidowane i zapisywane w bazie.
- Ranking live – odświeża się automatycznie w trakcie zawodów. Medale dla top 3.
- Rundy i przerwy – admin ustawia liczbę rund, czas trwania i przerwy między nimi. System sam śledzi czas.
- Dyplomy PDF – po zakończeniu zawodów top 3 pobiera spersonalizowany dyplom z wynikami.
- Archiwum – wszystkie edycje zawodów są przechowywane. Można wrócić do wyników z poprzednich spotkań.
- Panel admina – zarządzanie kursantami, uruchamianie i zatrzymywanie zawodów, podgląd wszystkich logów.
Stack techniczny – prosto i na temat
Celowo nie ma tu żadnego frameworka JS ani CMS-a. Aplikacja działa na tym samym hostingu co reszta infrastruktury Galvatron – nie potrzebowała osobnego serwera.
- PHP – backend, logika zawodów, sesje, walidacja QSO, timery rund
- MariaDB – kursanci, logi QSO, edycje zawodów, konfiguracja rund
- HTML/CSS/JS – minimalistyczny frontend, auto-refresh rankingu, bez frameworków
- TCPDF – generowanie dyplomów PDF po stronie serwera
- Apache + SSL – aplikacja dostępna przez HTTPS pod domeną zawody.sp6zhp.pl
Każdy harcerz z telefonem otwiera stronę, loguje się i działa.
Minimalna powierzchnia ataku, zero zależności które mogłyby się posypać w środku zawodów.
Ranking to zwykły SELECT COUNT(*) grupowany po kursancie i rundzie –
nie potrzeba nic bardziej skomplikowanego.
Testy – co wyszło
Zawody z 22 marca 2026: 14 kursantów, 2 rundy po 5 minut z 3-minutową przerwą. Zwycięzca zalogował 11 QSO łącznie. Aplikacja działała przez cały czas bez żadnego problemu – ranking odświeżał się na bieżąco, dyplomy wygenerowały się poprawnie dla top 3.
Przed tym testem był jeden problem do rozwiązania: walidacja duplikatów QSO (ten sam znak w tej samej rundzie nie powinien być zaliczony dwa razy). Zostało naprawione przed zawodami i testy potwierdziły poprawne działanie. Feedback od prowadzącego: harcerze nie potrzebowali żadnego instruktażu żeby zacząć logować. To było założenie od początku.
Kod źródłowy
Aplikacja jest open source. Można wziąć, postawić dla własnego klubu, zmodyfikować pod własne potrzeby.
Jeśli prowadzisz klub lub szkolenie krótkofalarskie i szukasz podobnego rozwiązania – napisz. Nie każdy projekt musi mieć fakturę.