Krótkofalówka

Co nowego

Historia wersji portalu i plan na kolejne.

Dziennik zmian — Krótkofalówka

Format: Keep a Changelog, wersje: MAJOR.MINOR.PATCH. Każda wersja = tag w gicie (git tag), wdrażana skryptem tools/deploy.sh.

[0.58.1] — 2026-10-04

Zmienione

  • „Portal w liczbach” pokazuje tylko wartości od 10 wzwyż (małe liczby na starcie zniechęcały); pojawią się same, gdy portal urośnie.

[0.58.0] — 2026-10-04

Zmienione

  • Nowa kolejność strony głównej — najpierw to, co osobiste i codzienne: Twój dzień → W eterze → Nauka do egzaminu (z widocznym nagłówkiem) → Pytanie dnia → Aktualności → Najbliższe egzaminy i kategorie → Propagacja. Pytanie dnia i aktualności wyrównane do lewej jak reszta strony.

[0.57.0] — 2026-10-04

Poprawione (wygoda na telefonie)

  • Na ekranach dotykowych przyciski, pola i listy mają co najmniej 40 px wysokości, pola wyboru są większe; znaczniki pasm na skali radia mają większy, niewidoczny obszar dotyku.
  • „Co nowego” nie przewija się już w bok na telefonie (kolumny i tabela planu dopasowują się do ekranu); długie słowa w tekstach się łamią.

Techniczne

  • Test tools/testy/telefon.mjs: wszystkie strony z mapy strony na szerokości 390 px — poziome przewijanie, elementy wystające poza ekran, za małe cele dotykowe (dołączony do wszystko.sh).

[0.56.0] — 2026-10-04

Dodane

  • Egzamin próbny zlecany przez prowadzącego kurs: termin i notka dla kursantów, odwołanie zlecenia; kursanci widzą prośbę na stronie kursów i na stronie głównej (z linkiem do egzaminu próbnego); prowadzący widzi kolumnę „Zlecony egzamin” — wynik egzaminu zrobionego po zleceniu (zdany/niezdany, punkty) albo „jeszcze nie”.

Techniczne

  • Migracja 1700000026_course_exam.js (courses.exam_from/exam_until/exam_note; course_progress z ostatnim egzaminem). Test: kurs-egzamin-e2e.mjs.

[0.55.0] — 2026-10-04

Dodane

  • Konkurs miesiąca „Łowca kwadratów” (zakładka w Rankingu): różne duże kwadraty lokatora, stacje, łączności i pasma z dziennika w bieżącym miesiącu (bez nasłuchów); tylko osoby ze zgodą na ranking; link do rankingu telegrafii.

Techniczne

  • Widok log_month (migracja 1700000025_log_month.js). Test: miesiac-e2e.mjs.

[0.54.0] — 2026-10-04

Dodane

  • Etykiety QSL do druku w dzienniku: łączności oznaczone „QSL do wysłania” drukowane na arkuszu etykiet A4 3×8 (70×37 mm) — adresat, data, UTC, MHz, emisja, RST, „TNX QSO · PSE QSL · 73 de [twój znak]” (dla nasłuchów „SWL report”); po wydruku jedno kliknięcie oznacza je jako wysłane.

Techniczne

  • Test drukowania przez prawdziwy PDF (etykiety-e2e.mjs); pomocnik testów ponawia połączenie podczas restartu serwera.

[0.53.0] — 2026-10-04

Dodane

  • Pierwsza stacja (/pierwsza-stacja/): doradca sprzętu — co chcesz robić (przemienniki, DX na KF, cyfrowe, satelity, teren, nasłuch), kategoria, budżet → rodzaj radia (ręczne UKF, mobilne/bazowe, KF, zestaw QRP, odbiornik SDR) z przykładami popularnych modeli (bez cen); kroki od świadectwa do znaku w UKE (wybór znaku, wniosek, opłaty — z linkami do aktualnych informacji UKE). Linki ze ścieżki „Od zera” i Poradnika.

[0.52.0] — 2026-10-04

Dodane

  • Wyszukiwarka portalu (/szukaj/, lupka w menu, klawisz / na każdej stronie): strony i narzędzia, pojęcia ze słowniczka, tematy egzaminu i wszystkie pytania egzaminacyjne naraz; wyróżnianie trafień, ranking (tytuł waży więcej), bez polskich znaków też działa („lacznosc” = „łączność”). Kliknięcie pytania otwiera bazę pytań z tą frazą.

Techniczne

  • Spis stron src/data/strony.ts (przy nowej stronie — dopisać!); baza pytań obsługuje ?q=. Test: szukaj-portal-e2e.mjs.

[0.51.0] — 2026-10-04

Dodane

  • Ranking treningu znaków w CW: wyniki zalogowanych zapisują się na koncie; w rankingu (najlepszy wynik i najwyższe tempo) tylko osoby z włączoną zgodą na ranking w profilu.

Bezpieczeństwo

  • Wyniki z granicami sensowności po stronie serwera (≤ 18 000 pkt, ≤ 60 sł./min — nierealne odrzucane, test), limit 30 zapisów/h.

Techniczne

  • Migracja 1700000024_cw_scores.js (cw_scores, widok cw_ranking). Test: cwrank-e2e.mjs.

[0.50.0] — 2026-10-04

Dodane

  • Parki POTA w Polsce (/pota/): mapa 2975 parków programu PL (kolor wg liczby aktywacji, czerwone — nigdy nieaktywowane), lista najbliższych twojemu QTH z odległością, filtr „tylko nigdy nieaktywowane”, wyszukiwanie po nazwie/numerze/województwie, aktywacje w Polsce na żywo (co 2 min), linki do pota.app.

Techniczne

  • Hook pota.pb.js (GET /api/kf/pota-pl): lista parków pobierana przez serwer raz na dobę i odchudzona (800 KB → 90 KB po kompresji). Polskie parki mają prefiks PL (nie SP). Test: pota-e2e.mjs.

[0.49.0] — 2026-10-04

Dodane

  • Statystyki dziennika: wykres łączności w ostatnich 12 miesiącach, pora łączności (UTC) z „najlepszą godziną” dla najczęstszych pasm, rozkład pasm, emisji i najczęstszych krajów.

[0.48.0] — 2026-10-04

Dodane

  • Planer anten (/anteny/, link w Narzędziach): dipol, inverted-V, GP z radialami, pętla delta, EFHW, dipol pętlowy — wymiary do cięcia, impedancja, sposób zasilania (balun, transformator λ/4 z wybranego kabla, 49:1), wskazówki montażu, szkic SVG i tabela dla 13 pasm (160 m – 70 cm).

[0.47.0] — 2026-10-04

Dodane

  • Tryb „Błędy z egzaminów próbnych” w treningu: pytania źle odpowiedziane na egzaminach próbnych (zapamiętywane w przeglądarce, także dla gości, oraz z konta); po egzaminie próbnym przycisk „Ćwicz błędy z egzaminu”. Poprawna odpowiedź na kolejnym egzaminie zmniejsza licznik błędu.
  • Tryb „Ostatnia prosta”: tylko pytania jeszcze nieopanowane. Na stronie głównej w ostatnim tygodniu przed egzaminem karta „dni do egzaminu” prowadzi prosto do tego trybu.

[0.46.0] — 2026-10-04

Dodane

  • Ściana sukcesów (/sukcesy/): zdany egzamin, nowy znak, pierwsza łączność, rzadki DX, dyplom — wpis z krótkim opisem, „🎉 Gratulacje” od innych (licznik); moderacja w panelu admina (usuwanie wpisów).
  • Mentorzy (/mentorzy/): w profilu „Pomogę nowym” + notka; lista mentorów od najbliższego (po lokatorze 4-znakowym) z linkiem do wyszukiwarki znaków.
  • Rząd „Społeczność” na stronie głównej (sukcesy, mentorzy, kursy, wydarzenia, wizytówki, od zera do QSO).

Prywatność i bezpieczeństwo

  • Publicznie tylko znak/pseudonim z konta, lokator 4-znakowy i treści wpisane przez użytkownika (test: brak e-maili i dokładnego QTH); limity: 5 wpisów na dobę, 120 gratulacji/h; jedna gratulacja na wpis od osoby. Polityka prywatności uzupełniona.

Techniczne

  • Migracja 1700000023_community.js (wins, win_likes, widoki wins_public i mentors; users.mentor, users.mentor_note). Test: spolecznosc-e2e.mjs.

[0.45.0] — 2026-10-04

Dodane

  • Od zera do pierwszego QSO (/start/): 10 kroków z opisem i linkami — poznaj krótkofalarstwo, nasłuch, nauka, egzamin próbny, zapis i egzamin w UKE, pozwolenie i znak, pierwsze radio, pierwsza łączność, klub. Pasek postępu, podświetlony następny krok; kroki zaliczane automatycznie: nauka (gotowość ≥ 50%), zdany egzamin próbny, znak w profilu, pierwsza łączność w dzienniku, klub w profilu. Linki ze strony głównej i działu Egzamin.

[0.44.0] — 2026-10-04

Dodane

  • Kto jest w eterze (/qrv/): ogłoszenia „słucham teraz” (30 min–4 h) i umówione łączności (do 14 dni naprzód) — częstotliwość, emisja, uwagi; lista „teraz” i „umówione”, mapa (lokator 4-znakowy), odświeżanie co minutę, zakończenie własnego ogłoszenia. Skróty na stronie głównej i na pulpicie.

Bezpieczeństwo i prywatność

  • Znak przy ogłoszeniu pochodzi z konta (widok qrv_public) — nie da się podszyć; publicznie bez e-maila i dokładnego QTH; ogłoszenie w cudzym imieniu odrzucane (test); limit 20 ogłoszeń/h; wygasłe ogłoszenia znikają z widoku automatycznie.

Techniczne

  • Migracja 1700000022_qrv.js. Test: qrv-e2e.mjs.

[0.43.0] — 2026-10-04

Dodane

  • Pulpit dnia (/pulpit/, w menu): czas UTC i lokalny, SFI, Kp, QTH; potrzebne spoty (zalogowani — z porównaniem z dziennikiem); najbliższe przeloty satelitów FM nad twoim QTH; najbliższe zawody; wydarzenia klubowe; aktualności PZK i PK-UKF; skrót nauki (powtórki, cel, seria). Odświeża się samo.

Poprawione

  • Kalendarz zawodów: „jutro/za N dni” liczone po dniach kalendarzowych (zawody później tego samego dnia to „dziś”).

Techniczne

  • Wspólne moduły src/scripts/contests.ts (reguły zawodów) i src/scripts/passes.ts (najbliższe przeloty). Test: pulpit-e2e.mjs (też szerokość menu 1200–1440 px).

[0.42.0] — 2026-10-04

Dodane

  • Potwierdzenia QSL w dzienniku: import pliku z LoTW (lotwreport.adi) lub eQSL (Inbox ADIF) — rozpoznawany automatycznie; dopasowanie po znaku, paśmie, grupie emisji (fonia/CW/cyfrowe) i czasie ±30 min, jak w LoTW. Bez haseł do zewnętrznych serwisów.
  • Status karty papierowej: „do wysłania” / „wysłana” i „otrzymana” w formularzu; znaczki w tabeli (L — LoTW, e — eQSL, Q — karta, → — do wysłania); filtr: potwierdzone / niepotwierdzone / QSL do wysłania.
  • Dyplomy: przeprowadzone i potwierdzone — DXCC i kontynenty liczone też z samych potwierdzonych łączności.
  • Eksport ADIF z polami LOTW_QSL_RCVD i EQSL_QSL_RCVD.

Techniczne

  • Migracja 1700000021_qsl_conf.js (qsos.lotw_rcvd, qsos.eqsl_rcvd). Test: qsl-conf-e2e.mjs.

[0.41.0] — 2026-10-04

Dodane

  • „Potrzebne!” w spotach (zalogowani): każdy spot DX i POTA porównany z twoim dziennikiem — „nowy kraj” (brak łączności z tym krajem) lub „nowe pasmo” (kraj jest, ale nie na tym paśmie), podświetlenie wierszy, filtr „tylko potrzebne”.
  • Powiadomienia w przeglądarce o nowym potrzebnym spocie (po włączeniu przyciskiem, gdy karta jest otwarta).
  • „+ log” przy spocie: otwiera dziennik z wypełnionym znakiem, częstotliwością, pasmem i emisją oraz podpowiedzią kraju.
  • Kraje i kontynenty spotów (także POTA) według BIG cty.dat, po polsku.

[0.40.0] — 2026-10-04

Dodane

  • Polskie krótkofalarstwo (/linki/, pomysł Błażeja): aktualności na żywo z kanałów RSS PZK, PK-UKF i Krótkofalowców Dębica (tylko nagłówki z linkami do źródeł, odświeżane co 30 min, wpisy starsze niż rok ukryte) + katalog polskich serwisów w kategoriach (organizacje, zawody i dyplomy, nauka/media/kluby); serwisy światowe niżej.
  • Aktualności na stronie głównej: 3 najnowsze komunikaty PZK i świeże wpisy innych serwisów.

Poprawione

  • Link SP DX Contest prowadzi znów do spdxcontest.pzk.org.pl (spdxc.org to SP DX Club — inna organizacja; pomyłka z v0.21).

Techniczne

  • Hook pocketbase/pb_hooks/news.pb.js (GET /api/kf/news): pobieranie RSS przez serwer, przekodowanie ISO-8859-2 (PZK), pamięć w kolekcji cache. Wszystkie adresy w katalogu sprawdzone (HTTP 200). Test: linki-e2e.mjs.

[0.39.0] — 2026-10-04

Dodane

  • Wyszukiwarka znaków (/znak/): dla dowolnego znaku — kraj (DXCC, prefiks), kontynent, strefy CQ/ITU, kierunek anteny i odległość od twojego lokatora (krótka i długa droga), twoje łączności z tą stacją, wizytówka użytkownika portalu, linki QRZ.com, HamQTH, QRZCQ, PSK Reporter. Szukanie użytkowników także po numerze SWL, pseudonimie i „innym znaku”.
  • Pole profilu „Inny znak lub identyfikator” (np. Plan Awaryjny, CB) — widoczne i wyszukiwalne tylko w publicznej wizytówce.
  • Znaki w spotach i w dzienniku prowadzą do wyszukiwarki.

Prywatność

  • Polityka uzupełniona o kursy (prowadzący widzi postęp kursanta) i nowe pola profilu.

Techniczne

  • cty.json: strefy CQ/ITU i współrzędne kraju; migracja 1700000020_other_call.js. Test: szukaj-e2e.mjs.

[0.38.0] — 2026-10-04

Dodane

  • „Twój dzień” na stronie głównej: dla nowego gościa przewodnik w 3 krokach (trening, plan, konto); dla uczącego się — ile pytań czeka teraz na powtórkę, postęp dziennego celu, seria, opanowane i jeszcze niewidziane pytania, dni do egzaminu (wyróżnione w ostatnim tygodniu). Każda karta prowadzi prosto do działania.
  • Wyzwanie tygodnia dla wszystkich: wspólny cel odpowiedzi w treningu (pon.–niedz.), pasek postępu, liczba uczących się; cel rośnie o 20% względem poprzedniego tygodnia (min. 1000).

Techniczne

  • /api/kf/stats: pola week, prevWeek, weekLearners, weekGoal. Test: dzien-e2e.mjs.

[0.37.0] — 2026-10-04

Dodane

  • CB radio i PMR (/cb-pmr/, pomysł Błażeja; skrót na stronie głównej w „W eterze”): CB 27 MHz bez pozwolenia — pasmo, moce (AM/FM 4 W, SSB 12 W PEP), kanał 9 ratunkowy i 19 drogowy, tabela 40 kanałów w normie PL („zera”) i EU („piątki”) z uwagą o kanałach 23–25, antena i strojenie SWR, ASQ/RF Gain, AM czy FM, żargon CB; PMR446 — 16 kanałów, 0,5 W, stała antena, podkanały CTCSS/DCS (to filtr, nie prywatność), dPMR/DMR446, ostrzeżenie dla radiotelefonów amatorskich; zachęta do egzaminu i klubów.
  • Linki z Pasm i strony FT-70DE.

Poprawione (narzędzia testowe)

  • admin_lokalny.py odnawia wygasłą sesję admina — wcześniej sprzątanie kont testowych po cichu nie działało, przez co kolejne testy nie mogły założyć kont.

[0.36.0] — 2026-10-04

Dodane

  • Słowniczek (/slownik/): 73 pojęcia — anteny i linie, propagacja, technika, emisje, operowanie, przepisy i bezpieczeństwo; wyszukiwarka, spis liter, linki do haseł (#hasło).
  • „Pojęcia:” pod wyjaśnieniem pytania w treningu, bazie pytań i egzaminie próbnym — linki do haseł z danego pytania (447 z 521 pytań kat. 1), z definicją w podpowiedzi po najechaniu.

[0.35.0] — 2026-10-04

Dodane

  • Nauka ze słuchu (/egzamin/sluchanie/): syntezator mowy czyta pytanie i odpowiedzi A/B/C, czeka 3–8 s na odpowiedź w myślach, podaje poprawną z wyjaśnieniem; najpierw nieopanowane pytania; wybór kategorii, przedmiotu lub tematu i tempa mowy; jednostki czytane po polsku (Ω → omów, MHz → megaherców…); pytania z rysunkami pomijane. Test z atrapą syntezatora: sluchanie-e2e.mjs.

[0.34.0] — 2026-10-04

Dodane

  • Znaki wywoławcze w CW (/cwiczenia/znaki-cw/) w stylu RufzXP: 25 znaków (polskie, zagraniczne lub mieszane), tempo startowe 12–35 słów/min, +2 po poprawnym odbiorze, −2 po błędzie; punkty = długość znaku × tempo (połowa przy powtórce F6); tabela z podświetlonymi błędnymi znakami; rekord w przeglądarce. Test: rufz-e2e.mjs.

[0.33.0] — 2026-10-04

Dodane

  • Szara linia i warunki (/propagacja/): mapa świata z nocą i szarą linią liczonymi na żywo (położenie Słońca w przeglądarce), zegar UTC i lokalny, wschód/zachód Słońca w twoim QTH i alarm „szara linia!”, dane NOAA (SFI, Kp, klasa promieniowania X / rozbłyski, szansa zorzy) i orientacyjna ocena pasm 160–10 m z uwzględnieniem pory dnia, SFI i burz geomagnetycznych.

Bezpieczeństwo

  • CSP: dopisane services.swpc.noaa.gov (dane NOAA, CORS) — sprawdzone testem CSP.

[0.32.0] — 2026-10-04

Dodane

  • Kursy klubowe (/kurs/): prowadzący tworzy kurs (kat. 1 lub 3) i dostaje 6-znakowy kod; kursanci dołączają kodem. Prowadzący widzi dla każdego kursanta: gotowość (S-metr i szansa zdania), opanowane pytania, najsłabszy przedmiot, odpowiedzi w 7 dni, egzaminy próbne, ostatnią aktywność; może usunąć kursanta lub kurs. Kursant widzi swoje kursy i może je opuścić.
  • Tryb rzutnika (/egzamin/rzutnik/, przycisk przy każdym temacie): pełny ekran, ściąga tematu i pytania dużą czcionką, spacja odsłania odpowiedź z wyjaśnieniem, strzałki i klawisz F.

Prywatność i bezpieczeństwo

  • Postęp kursanta widzi wyłącznie prowadzący jego kursu i tylko po dołączeniu kodem (zgoda opisana przy formularzu). Lista kursów nie jest publiczna; dołączenie tylko przez serwer (POST /api/kf/kurs/dolacz, wymaga logowania, limit 20/min). Testy: obcy i anonim nie widzą kursów ani postępów, nie da się dopisać bez kodu.

Techniczne

  • Migracja 1700000019_courses.js (courses, course_members, widok course_progress), hook kurs.pb.js. Testy: kurs-e2e.mjs, rzutnik-e2e.mjs.

[0.31.0] — 2026-10-04

Poprawione (znalezione przez nowy pełny test)

  • Profil konta: dane doczytywane z serwera w tle nie nadpisują już pól, które właśnie edytujesz, a „Zapisz profil” jest aktywny dopiero po wczytaniu profilu (wcześniej szybki zapis mógł wyczyścić znak lub pseudonim).
  • Kluby: czytelny komunikat przy próbie dołączenia do 11. klubu (limit 10) zamiast błędu technicznego.

Dodane (narzędzia)

  • Pełny test portalu tools/testy/wszystko.sh: „klikacz” (66 stron, ~250 kliknięć każdego przycisku jako zalogowany użytkownik, kontrola 144 linków i obrazków) + 14 testów funkcji; podsumowanie OK/BŁĄD. Lokalnie na czas testów podnosi limity rejestracji i przywraca je po zakończeniu.

[0.30.0] — 2026-10-04

Dodane

  • Przypomnienia w kalendarzu telefonu (.ics, bez powiadomień push): codzienna nauka o wybranej godzinie aż do dnia egzaminu i termin egzaminu w UKE (przypomnienie dzień i 2 godziny wcześniej) — w planie nauki; przelot satelity z przypomnieniem 10 minut przed — na stronie satelitów.
  • tools/panele-serwera.command — panele NPM, Portainer i Uptime Kuma przez tunel SSH (przygotowanie do zamknięcia ich portów w zaporze).

Techniczne

  • src/scripts/ics.ts (wspólny generator kalendarza). Test: tools/testy/ics-e2e.mjs.

[0.29.0] — 2026-10-04

Dodane

  • Fiszki (/cwiczenia/fiszki/): kod Q, skróty operatorskie, alfabet ITU i kod Morse’a z powtórkami (Leitner), tryb odwrotny, skróty klawiszowe (spacja, 1, 2), postęp w przeglądarce. Test: tools/testy/fiszki-e2e.mjs.

[0.28.0] — 2026-10-04

Dodane

  • Karty QSL z dziennika: przycisk „QSL” przy każdym wpisie — karta PNG 1500×950 (proporcje 140×90 mm) do druku lub wysłania: mój znak/numer SWL, pseudonim, lokator, adresat, tabela DATE/UTC/MHz/BAND/MODE/RST. Dla nasłuchów karta nasłuchowa („SWL report — Heard you in QSO with …”, PSE QSL).

Techniczne

  • src/scripts/qslcard.ts.

[0.27.0] — 2026-10-04

Dodane

  • Dziennik nasłuchów (SWL) w dzienniku łączności: przełącznik „Nasłuch (SWL)” — usłyszana stacja, jej korespondent i mój raport odbioru; włącza się sam dla kont z numerem nasłuchowym bez znaku. W tabeli oznaczenie SWL i „↔ korespondent”.
  • ADIF: pole SWL=Y, korespondent w komentarzu („QSO z …”, odczytywany przy imporcie), znak stacji = numer nasłuchowy, gdy brak znaku; CSV z kolumnami swl i qso_with.

Techniczne

  • Migracja 1700000018_swl.js (qsos.swl, qsos.qso_with). Test: tools/testy/swl-e2e.mjs.

[0.26.0] — 2026-10-04

Bezpieczeństwo

  • Content-Security-Policy: skrypty, style i czcionki wyłącznie z portalu; z zewnątrz tylko kafelki OpenStreetMap, panel propagacji hamqsl.com i API spotów (HamQTH, POTA); object-src 'none', base-uri/form-action 'self', frame-ancestors 'self', upgrade-insecure-requests. Sprawdzone na 20 stronach — zero naruszeń.
  • Nowe nagłówki: Permissions-Policy (GPS tylko dla portalu; kamera, mikrofon, płatności wyłączone), Cross-Origin-Opener-Policy, HSTS z includeSubDomains.
  • Nagłówki bezpieczeństwa także dla plików z /data/, /sw.js i plików statycznych (wcześniej add_header w tych sekcjach je kasował).
  • Twarde limity zapytań na adres IP: logowanie admina 5/min, logowanie użytkowników 20/min, rejestracje 10/h, zgłoszenia błędów 20/h, nowe kluby 5/h, licznik odwiedzin 60/min.
  • Przegląd reguł dostępu: anonim nie widzi kont, postępów, egzaminów, zgłoszeń ani statystyk; nie da się założyć konta oznaczonego jako zweryfikowane.

Techniczne

  • nginx-security.conf (produkcja) i nginx-security.local.conf (bez HSTS i wymuszania https), dołączane jako /etc/nginx/snippets/security.conf. Migracja 1700000017_security.js. Test CSP: tools/testy/csp-local.mjs.

[0.25.1] — 2026-10-04

Bezpieczeństwo

  • Linki podane przez użytkowników (strona wydarzenia, strona klubu) w panelu admina i na stronie wydarzeń przepuszczane tylko jako http(s) — adres javascript: nie może uruchomić kodu po kliknięciu (zgłoszenie automatycznego przeglądu bezpieczeństwa).

[0.25.0] — 2026-10-04

Dodane

  • Panel admina po polsku (/panel/ w PocketBase, tylko przez tunel): odwiedzający i wyświetlenia (wykres 30 dni, najczęściej oglądane strony, skąd przychodzą), konta, wydarzenia do zatwierdzenia (Zatwierdź/Odrzuć), zgłoszenia błędów w pytaniach (Przyjęte/Odrzucone), kluby dodane przez użytkowników (Usuń), kopie zapasowe (lista + „Utwórz kopię teraz”).
  • Uruchamianie dwuklikiem: Panel admina.command w folderze krotkofalowka — sam zestawia tunel SSH i otwiera panel.
  • Odwiedzający dziennie (osoby) obok wyświetleń stron — przeglądarka pamięta, że dziś już się policzyła; serwer nie dostaje identyfikatora.

Zmienione

  • Polityka prywatności: administrator danych Błażej Wiecha, blazej.wiecha@pm.me; informacja o dziennikach serwera.
  • „Portal w liczbach”: odwiedziny = osoby, osobno wyświetlenia stron.

Techniczne

  • pocketbase/pb_public/panel/index.html (PocketBase --publicDir); publiczny portal przekazuje do PocketBase tylko /api/, więc /panel/ i /_/ nie są dostępne z internetu. Migracja 1700000016_visitors.js.

[0.24.0] — 2026-10-04

Dodane

  • Polskie nazwy krajów DXCC (307 z 340; rzadkie wysepki po angielsku) — w dyplomach i dzienniku.
  • Kraj przy znaku w tabeli dziennika i podpowiedź podczas wpisywania: kraj, kontynent i „nowy kraj w dzienniku!”.
  • „Twój tydzień” na stronie konta: odpowiedzi w 7 dni (z porównaniem do poprzedniego tygodnia), dni z nauką, najlepszy egzamin próbny tygodnia, szansa zdania i przyrost opanowanych pytań względem migawki sprzed tygodnia, wskazówka, co ćwiczyć.

Techniczne

  • tools/cty_pl.mjs: dopasowanie nazw cty.csv do kodów ISO przez Intl.DisplayNames + ręczny słownik regionów DXCC (Rosja europejska/azjatycka, Anglia, Sardynia…). Kolejność aktualizacji: build_cty.py → cty_pl.mjs.
  • Migawki gotowości w localStorage (kf-week-snaps, 30 dni, osobno dla kat. 1 i 3). Test: tools/testy/v024-e2e.mjs.

[0.23.0] — 2026-10-04

Dodane

  • Wydarzenia klubowe (/wydarzenia/): lista nadchodzących zbiórek, kursów, field day, aktywności i spotkań z mapą. Zalogowani zgłaszają wydarzenia (miejsce można zaznaczyć na mapie); publicznie widoczne dopiero po zatwierdzeniu przez administratora, autor widzi swoje zgłoszenie i może je wycofać.
  • Linki z Klubów i Kalendarza zawodów.

Bezpieczeństwo

  • Autor nie może sam zatwierdzić ani zmienić zatwierdzonego wydarzenia (reguły API, test); limit 5 zgłoszeń na godzinę; wydarzenia usuwane razem z kontem autora.

Techniczne

  • Migracja 1700000015_events.js. Test: tools/testy/wydarzenia-e2e.mjs.

[0.22.0] — 2026-10-04

Dodane

  • Kraje DXCC i kontynenty w dyplomach dziennika (cele 10/25/50/100 krajów jak dyplom DXCC; 6 kontynentów jak WAC). Rozpoznawanie kraju ze znaku według BIG cty.dat (country-files.com, licencja MIT): 340 krajów, 6290 prefiksów, 21 100 znaków specjalnych; obsługa OK/SP9ABC, /P, /MM.

Techniczne

  • tools/build_cty.py → public/data/cty.json (94 KB po kompresji, ładowany tylko w dzienniku) + public/data/cty-licencja.txt. Źródło: data/cty/ (rozpakowany bigcty ZIP).

[0.21.0] — 2026-10-04

Dodane

  • Portal w liczbach na stronie głównej: odwiedziny łącznie i dziś, konta, odpowiedzi w treningu, egzaminy próbne, łączności w dziennikach (same sumy; liczby zerowe ukryte; serwer przelicza co 5 min — hook pocketbase/pb_hooks/stats.pb.js, GET /api/kf/stats).
  • Satelita AO-123 (ASRTU-1) na stronie satelitów; uwagi o stanie PO-101 i AO-27 według listy AMSAT.

Zmienione

  • Link SP DX Contest prowadzi do oficjalnej strony spdxc.org.

[0.20.0] — 2026-10-04

Dodane

  • Anonimowe statystyki odwiedzin: dzienne liczniki wyświetleń każdej strony, udział telefonów i domeny odsyłające. Bez IP, bez cookies, bez identyfikatora; roboty i przeglądarki testowe pomijane. Podgląd tylko w panelu admina (hits, hits_daily).

Prywatność

  • Polityka prywatności opisuje liczenie odwiedzin.

Techniczne

  • Hook pocketbase/pb_hooks/hits.pb.js (POST /api/kf/hit, navigator.sendBeacon w Base.astro), migracja 1700000014_hits.js. Test: tools/testy/hit-e2e.mjs.

[0.19.0] — 2026-10-04

Dodane

  • Publiczne wizytówki (/znak/?c=ZNAK, katalog /znak/): znak, pseudonim, opis „O mnie”, sprzęt, kluby, lokator 4-znakowy, liczby z dziennika (łączności, stacje, pasma, kwadraty) i nauki (opanowane pytania, zdane egzaminy próbne). Włączane przełącznikiem w profilu — domyślnie wyłączone.
  • Pola profilu „Sprzęt” i „O mnie”.

Prywatność

  • Widok cards pokazuje tylko konta z włączoną wizytówką i tylko wymienione pola; dokładny lokator i e-mail nigdy. Opisane w polityce prywatności.

Techniczne

  • Migracja 1700000013_cards.js. Test: tools/testy/znak-e2e.mjs; sprzątanie kont testowych: tools/testy/sprzatanie_lokalne.sh.

[0.18.0] — 2026-10-04

Dodane

  • Sekcja „W eterze” na stronie głównej: skróty do spotów, satelitów, zawodów i dziennika.
  • Seria pytania dnia — licznik kolejnych dni z odpowiedzią (w przeglądarce).

Serwer

  • Portal widoczny z całego świata (wyjątek w geo-blokadzie NPM tylko dla tej subdomeny) — potrzebne dla Google Search Console i indeksowania.

[0.17.0] — 2026-10-04

Dodane

  • Przełącznik motywu w stopce: automatyczny (wg systemu) → jasny → ciemny; wybór zapamiętany w przeglądarce, ustawiany przed wyrenderowaniem strony (bez mignięcia).

[0.16.0] — 2026-10-04

Dodane

  • Pytanie dnia na stronie głównej: jedno pytanie kat. 1 dziennie (to samo dla wszystkich, wybierane z daty), odpowiedź z wyjaśnieniem „Dlaczego?”.

[0.15.1] — 2026-10-04

Zmienione

  • Eksport przemienników do ADMS-10 (FT-70DE) oznaczony jako wersja eksperymentalna (format tonu i przesunięcia do potwierdzenia na radiu).

[0.15.0] — 2026-10-04

Kalendarz zawodów.

Dodane

  • Kalendarz zawodów (/zawody/): 12 najbliższych dużych zawodów (SP DX Contest, CQ WW, CQ WPX, IARU HF, IARU R1 VHF/UHF, ARRL DX) z czasem polskim, odliczaniem, oznaczeniem trwających, opisem wymiany i linkiem do regulaminu.
  • Eksport do kalendarza telefonu (.ics, pojedynczo lub wszystkie) z przypomnieniem 2 h przed startem.
  • Linki w Narzędziach i na stronie Spoty.

[0.14.0] — 2026-10-04

Widoczność w wyszukiwarkach i ładne podglądy linków.

Dodane

  • sitemap.xml (wszystkie strony publiczne + 30 tematów, bez konta, offline, 404 i panelu prowadzącego quizu) i robots.txt.
  • Podglądy linków (Open Graph / Twitter): tytuł, opis, obrazek og.png 1200×630 w kolorach portalu — Facebook, Discord, Messenger, WhatsApp.
  • Adres kanoniczny na każdej stronie; dane strukturalne WebSite (schema.org) na stronie głównej.

Techniczne

  • site w astro.config.mjs = adres publiczny (można nadpisać SITE_URL). Obrazek generuje tools/testy/og-image.mjs (Playwright, kroje portalu).

[0.13.0] — 2026-10-04

Dyplomy i cele z dziennika.

Dodane

  • Dyplomy i cele w dzienniku łączności: prefiksy (zasady WPX), duże kwadraty lokatora, okręgi SP0–SP9, różne polskie stacje, pasma, emisje — gwiazdki za progi, pasek postępu do następnego progu, lista zaliczonych.

Zmienione

  • Licznik prefiksów w statystykach dziennika liczy według zasad WPX (src/scripts/awards.ts).

[0.12.0] — 2026-10-04

Satelity FM.

Dodane

  • Przeloty satelitów (/satelity/): ISS, SO-50, AO-91, PO-101, AO-27 nad QTH (lokator, GPS lub lokator z profilu), 12/24/48 h, filtr wzniesienia. Szczegóły przelotu: tor na niebie (wykres azymut/wzniesienie), pozycja na żywo, częstotliwości odbioru i nadawania z poprawką Dopplera na początek/środek/koniec, tony CTCSS, poradnik pierwszej łączności z ręcznym radiem.
  • Linki do satelitów i spotów w Narzędziach i na stronie Spoty.

Zmienione

  • Menu nie zawija się na ekranach 1180–1460 px.

Techniczne

  • Pierwszy hook PocketBase: pocketbase/pb_hooks/tle.pb.js — GET /api/kf/tle zwraca elementy orbitalne z CelesTrak (grupa amateur), pobierane przez serwer najwyżej co 12 h i trzymane w kolekcji cache (migracja 1700000012_cache.js, bez reguł = tylko serwer). Dockerfile kopiuje pb_hooks, --hooksDir w entrypoint.
  • Biblioteka satellite.js (SGP4) — obliczenia w przeglądarce, 48 h dla 5 satelitów ~45 ms. Test: tools/testy/sat-e2e.mjs.

[0.11.0] — 2026-10-03

Przemienniki prosto do radia.

Dodane

  • Eksport przemienników do radia (strona Przemienniki, sekcja „Wgraj przemienniki do radia”): z bieżącej listy (filtry, od najbliższego QTH/GPS), tylko dostępne analogowym FM i niewyłączone; 20/50/100/wszystkie, numer pierwszego kanału.
    • CHIRP CSV — Baofeng, Quansheng, Kenwood, Icom i inne: przesunięcie +/−, ton CTCSS, krok kanału, opis z miejscowością i lokatorem.
    • Yaesu ADMS-10 (FT-70DE) — wersja testowa: 900 pozycji po 53 pola jak w pliku odczytanym z radia, tylko 2 m i 70 cm.
  • Link z poradnika FT-70DE do eksportu.

[0.10.0] — 2026-10-03

Kopie zapasowe poza serwerem.

Dodane

  • Codzienne pobieranie kopii bazy kont z VPS na MacBooka (launchd pl.krotkofalowka.kopie, 10:00 lub po wybudzeniu): ~/KopieKrotkofalowka/serwer, 90 dni historii, test integralności ZIP, powiadomienie macOS, gdy kopia jest uszkodzona lub od 3 dni nie ma połączenia.
  • Skrypty: tools/kopie_na_maca.sh, tools/zainstaluj_kopie_mac.sh.

[0.9.0] — 2026-10-03

Statystyki trudności pytań i monitoring.

Dodane

  • Najtrudniejsze pytania (/egzamin/trudne/): ranking pytań, na których najczęściej mylą się uczący się w portalu (osobno kat. 1 i 3), z poprawną odpowiedzią, rysunkiem i wyjaśnieniem.
  • Tryb treningu „Najtrudniejsze” — algorytm powtórek na puli trudnych pytań (≥ 35% uczących się pomyliło się choć raz).
  • Oznaczenie „trudne: X% osób się myliło” przy pytaniu w treningu.
  • Monitoring: /healthz odpowiada 200 tylko wtedy, gdy działa i serwer stron, i baza — do monitora w Uptime Kuma.

Prywatność

  • Statystyki są zbiorcze i anonimowe: publikowane tylko dla pytań przerobionych przez co najmniej 3 osoby. Opisane w polityce prywatności (razem z dziennikiem łączności i źródłami spotów).

Techniczne

  • Migracja 1700000011_q_stats.js: widok SQL q_stats (json_each po progress.data). Moduł src/scripts/difficulty.ts (pamięć podręczna 30 min w sessionStorage). Test: tools/testy/trudne-e2e.mjs.
  • Poczta przeniesiona do v0.10 — czeka na konfigurację SMTP.

[0.8.0] — 2026-10-03

W eterze: dziennik łączności i spoty.

Dodane

  • Dziennik łączności (/log/, w menu „Dziennik”): szybki wpis (domyślnie bieżący czas UTC, pasmo z częstotliwości, RST zależny od emisji, zapamiętana ostatnia częstotliwość/emisja/moc), podpowiedź przy ponownej łączności z tą samą stacją (uzupełnia imię, QTH, lokator), wyszukiwanie i filtr pasma, edycja i usuwanie, statystyki (łączności, stacje, pasma, prefiksy, najdalsza łączność z lokatora w profilu), mapa łączności.
  • Eksport ADIF 3.1 (dla LoTW/TQSL, eQSL, QRZ, Club Log) i CSV; import ADIF z WSJT-X, N1MM, Log4OM (pomija duplikaty, obsługuje MODE/SUBMODE i znaki wielobajtowe).
  • Spoty (/spoty/): DX Cluster (HamQTH) i aktywacje parków POTA, filtry pasma, emisji i kontynentu, wyszukiwanie, odświeżanie co 2 minuty, znak prowadzi do QRZ.com. SOTA (SOTAwatch) i APRS (aprs.fi) jako linki — regulamin API SOTA nie pozwala na integrację bez zgody.

Zmienione

  • Poradnik FT-70DE przeniesiony z menu do Poradnika („Pierwsza stacja”), żeby zmieścić nowe pozycje.
  • Mapy Leaflet nie przykrywają już przyklejonego nagłówka.

Techniczne

  • Migracja 1700000010_log.js: kolekcja qsos (dostęp tylko właściciela, usuwana razem z kontem). Moduł src/scripts/adif.ts. Test end-to-end: tools/testy/log-e2e.mjs.

[0.7.0] — 2026-10-03

Rywalizacja: ranking, wyzwanie klubów i quiz na zbiórki.

Dodane

  • Ranking (/ranking/): osoby i kluby wg liczby odpowiedzi z ostatnich 7 dni (cotygodniowe wyzwanie klubów), plus opanowane pytania. Udział wyłącznie za zgodą — przełącznik w profilu konta; widoczne tylko znak/pseudonim i liczby.
  • Quiz klubowy (/quiz/prowadzacy/ dla prowadzącego, /quiz/ dla uczestników): prowadzący (zalogowany) wybiera kategorię, przedmiot lub temat, liczbę pytań i czas; uczestnicy dołączają z telefonu 4-cyfrowym kodem bez konta. Pytania na żywo (realtime), odliczanie, automatyczne odsłonięcie po odpowiedziach wszystkich, rozkład odpowiedzi, wyjaśnienie „Dlaczego?”, tabela prowadzących i podium. Punkty 500–1000 za poprawną odpowiedź zależnie od szybkości, liczone zegarem serwera.

Bezpieczeństwo

  • Punkty zapisuje tylko prowadzący; uczestnik nie może ustawić punktów, odpowiedzieć poza pytaniem, dwa razy ani do cudzego pokoju; odpowiedzi widzi tylko prowadzący (testy reguł API).
  • Wyższe limity zapytań dla odpowiedzi w quizie (cała sala za jednym routerem).

Techniczne

  • Migracja 1700000009_ranking_quiz.js: users.ranking_optin, widoki SQL ranking i club_ranking, kolekcje quiz_rooms, quiz_players, quiz_answers. Test end-to-end: tools/testy/quiz-e2e.mjs.

[0.6.0] — 2026-10-03

Ćwiczenia praktyczne: łączność, literowanie, telegrafia.

Dodane

  • Ćwiczenia (/cwiczenia/) w menu głównym (Linki przeniesione do stopki).
  • Symulator łączności QSO: 4 scenariusze — odpowiedź na CQ (stacja zagraniczna), własne wywołanie, praca przez przemiennik, stacja w niebezpieczeństwie. Losowe znaki, imiona, QTH i raporty; wybór relacji, wyjaśnienie po każdym kroku, zapis przebiegu łączności, opcjonalne czytanie relacji na głos.
  • Alfabet ITU: trzy tryby — słuchaj i wpisz znak (synteza mowy), czytaj i wpisz znak, przeliteruj znak (akceptuje warianty: alpha/alfa, juliet/juliett, x-ray).
  • Trener telegrafii (/cwiczenia/cw/): metoda Kocha z automatycznym awansem przy ≥ 90%, nowy znak częściej w sesji, wykres trafności sesji, najczęściej mylone znaki, zapis na koncie.

Techniczne

  • Wspólny moduł src/scripts/morse.ts (Narzędzia i trener CW), src/scripts/qso.ts, src/scripts/cwprogress.ts; migracja 1700000008_cw.js (progress.cw).

[0.5.0] — 2026-10-03

Aplikacja na telefon i nauka bez internetu.

Dodane

  • PWA: manifest, ikony (w tym maskowalna i dla iOS), instalacja z przeglądarki („Zainstaluj aplikację” w stopce i na stronie /aplikacja/ z instrukcją dla Androida i iPhone’a), skróty do treningu, szybkiej sesji, egzaminu próbnego i konta.
  • Tryb offline (service worker generowany przy budowie, /sw.js): po pierwszej wizycie działają bez sieci trening, baza pytań, egzamin próbny, tematy, plan, terminy, poradnik, pasma i narzędzia; strona /offline/ dla niezapisanych stron; pasek „Brak internetu”.
  • Synchronizacja po powrocie zasięgu: postęp treningu i wyniki egzaminów próbnych zrobione offline trafiają na konto automatycznie.

Techniczne

  • Strategie pamięci: strony i /data/ — najpierw sieć, potem pamięć; /_astro/, rysunki, fonty — najpierw pamięć; /api/ zawsze przez sieć. Nazwa pamięci z numerem wersji — stara usuwana przy aktualizacji.
  • sw.js z Cache-Control: no-cache. Test w Chromium (Playwright w kontenerze): instalacja, 49 stron/danych + 73 zasoby w pamięci, 5 stron i odpowiedź w treningu bez sieci.

[0.4.0] — 2026-10-03

Nauka blokami i plan do terminu egzaminu.

Dodane

  • Tematy (/egzamin/tematy/): 30 mini-lekcji — każde z 878 pytań przypisane ręcznie do tematu (prawo Ohma, decybele, anteny, propagacja, kod Q, pozwolenia…). Ściąga na jeden ekran, postęp tematu, „Ćwicz ten temat”, nawigacja między tematami.
  • Filtr tematu w treningu (?temat=…, baner z linkiem do ściągi) i w bazie pytań.
  • Plan nauki (/egzamin/plan/): wybór sesji z harmonogramu UKE (najpierw z Twojego miasta) lub dowolnej daty; liczba dni, pytań do opanowania, potrzebnych odpowiedzi dziennie (z przyciskiem „Ustaw jako dzienny cel”), Twoje tempo z 7 dni, dwa S-metry (dziś / w dniu egzaminu przy obecnym tempie) i harmonogram: rezygnacja (−14 dni), zapisy (−7 dni), ostatnie 3 dni egzaminów próbnych, dzień przed, egzamin. Termin zapisywany na koncie.
  • Nowe skróty na stronie głównej (tematy, plan, szybkie 5 minut) i w dziale egzaminu.

Poprawione

  • Pliki danych (/data/*.json) nie są już trzymane w pamięci przeglądarki przez godzinę — po wdrożeniu nowa baza pytań wczytuje się od razu.
  • Panel konta pokazuje komunikat zamiast pustej strony, gdy serwer kont chwilowo nie odpowiada.

Techniczne

  • Migracja 1700000007_exam_plan.js (users.exam_date, users.exam_place). Tematy: data/tematy/tematy.json (ściągi) + data/tematy/przydzial.txt (przydział pytań), łączone w tools/build_bank.py.

[0.3.0] — 2026-10-03

Motywacja: widać postęp i chce się wracać codziennie.

Dodane

  • S-metr gotowości (S1 … S9+40) w treningu i na koncie — szacowana szansa zdania egzaminu: dla każdego przedmiotu prawdopodobieństwo ≥ 6/8 z poziomu opanowania pytań, potem iloczyn. Paski szans dla 4 przedmiotów, wskazanie najsłabszego.
  • Dzienny cel (10/20/40/60 odpowiedzi, zapisywany na koncie) i seria dni z kalendarzem ostatnich 5 tygodni; powiadomienie po wykonaniu celu.
  • Odznaki (14): pierwsze odpowiedzi, 100 i 1000 odpowiedzi, serie 3/7/30 dni, opanowanie każdego przedmiotu, S9, pierwszy zdany próbny, 3 zdane z rzędu, egzamin bez błędu. Powiadomienie przy zdobyciu.
  • Karta QSL (PNG) do pobrania po zdanym egzaminie próbnym (także z historii na koncie) — ze znakiem/SWL, wynikami przedmiotów i lokatorem.
  • Lokalna historia egzaminów próbnych — odznaki działają także bez konta.

Techniczne

  • Migracja 1700000006_motivation.js: progress.days (dzienne liczniki), users.daily_goal.
  • Nowe moduły: src/scripts/stats.ts (gotowość, seria, odznaki, S-metr SVG), src/scripts/qsl.ts (karta QSL na canvasie).

[0.2.0] — 2026-10-03

Szybsza nauka: wyjaśnienia do każdego pytania i krótkie tryby treningu.

Dodane

  • „Dlaczego?” — własne wyjaśnienie do każdego z 878 pytań (przy obliczeniach rozwiązanie krok po kroku). Widoczne po odpowiedzi w treningu, po odsłonięciu w bazie pytań, w przeglądzie egzaminu próbnego i w „trudnych pytaniach” na koncie.
  • Tryby treningu: „Szybkie 5 minut” (10 pytań z wynikiem), „Tylko moje błędy”, „Tylko pytania ze schematami”. Tryb zapamiętywany w adresie (?tryb=…).
  • „Zgłoś błąd w pytaniu” pod każdym pytaniem — zgłoszenia trafiają do bazy (kolekcja reports, widoczna tylko dla administratora).
  • Numer wersji w stopce i strona „Co nowego” (/zmiany/) z historią wersji i planem rozwoju.
  • Wersjonowanie w gicie z tagami (v0.1.0, v0.2.0…).

Zmienione

  • Trening: licznik „przerobione / opanowane” i trójkolorowy pasek postępu; komunikat, gdy użytkownik nie jest zalogowany.
  • Algorytm powtórek dopracowany pod najszybsze opanowanie (symulacja 300 odpowiedzi: 92 przerobione / 73 opanowane, wcześniej 75 / 62).

[0.1.0] — 2026-10-03

Pierwsza wersja publiczna (https://krotkofalowka.blazej-ora-cloud.ddnsgeek.com).

Dodane

  • Baza 878 pytań UKE (kat. 1: 521, kat. 3: 357) z wyszukiwarką i 66 schematami z PDF; własny klucz odpowiedzi (9 spornych oznaczonych).
  • Trening z powtórkami w rosnących odstępach (przeplatanie, priorytet błędów, wyrównywanie tempa przedmiotów).
  • Egzamin próbny wg zasad od 1.05.2026 (4×8 pytań, 8 min, próg 6/8).
  • Konta (PocketBase): profil, znak wywoławczy/SWL, lokator, kluby; statystyki egzaminów i nauki.
  • Terminy egzaminów 2026 (235 sesji), przepisy (Dz.U. 2026 poz. 406), proces uzyskania pozwolenia, formularze UKE.
  • Pasma (KTPC + bandplan IARU R1) ze skalą strojenia, 600 przemienników z mapą (przemienniki.eu), 539 klubów (rejestr UKE).
  • Narzędzia: kalkulatory, lokator QTH, trener CW, zegar UTC; poradnik operatora; strona FT-70DE.
  • Wdrożenie: nginx + PocketBase w Dockerze, za Nginx Proxy Managerem; HTTPS wymuszone; kopie zapasowe bazy codziennie.

Plan rozwoju

Kolejność ustalona 2026-10-03. Każdy punkt = osobna wersja, po wdrożeniu odhaczamy i dopisujemy do CHANGELOG.md.

WersjaZakresStatus
v0.1Pierwsza wersja publiczna✅ wdrożona
v0.2„Dlaczego?” — wyjaśnienia do pytań · szybkie tryby (5 min, moje błędy, schematy) · „Zgłoś błąd w pytaniu”✅ wdrożona
v0.3S-metr gotowości, serie dni, dzienny cel, odznaki · karta QSL za zdany egzamin próbny✅ wdrożona
v0.4Mini-lekcje tematyczne (ściągi + trening tematu) · plan nauki do terminu egzaminu i prognoza zdania✅ wdrożona
v0.5Aplikacja na telefon (PWA, nauka offline)✅ wdrożona
v0.6Symulator łączności QSO · trener alfabetu ITU ze słuchu · trener CW z postępem na koncie✅ wdrożona
v0.7Ranking i wyzwania klubowe · quiz na zbiórki klubowe✅ wdrożona
v0.8Dziennik łączności online z eksportem ADIF · spoty DX/POTA (SOTA i APRS jako linki)✅ wdrożona
v0.9Statystyki trudności pytań · monitoring (/healthz + Uptime Kuma)✅ wdrożona
v0.10Kopie zapasowe poza serwerem (automatycznie na MacBooka)✅ wdrożona
v0.11Eksport przemienników do FT-70DE (ADMS) i CHIRP (najbliższe wg GPS były już od v0.1)✅ wdrożona — ADMS jako „eksperymentalna”, Błażej sprawdzi format później
v0.12Przeloty satelitów FM (ISS, SO-50, AO-91…) z poprawką Dopplera✅ wdrożona
v0.13Dyplomy z dziennika (prefiksy WPX, kwadraty, okręgi SP, pasma, emisje) — DXCC później✅ wdrożona
v0.14SEO: sitemap, podglądy linków (Open Graph), dane strukturalne✅ wdrożona — zgłosić w Google Search Console (Błażej)
v0.15Kalendarz zawodów z eksportem .ics✅ wdrożona
późniejPoradnik C4FM/WIRES-X (najpierw potwierdzić obsługę WIRES-X w FT-70DE i polskie pokoje) · Kraje DXCC w dyplomach (tabela prefiksów — sprawdzić licencję cty.dat / country-files.com) · Publiczna wizytówka znaku (opt-in) · wydarzenia klubowe · statystyki odwiedzin bez cookies (Umami)
⏸Poczta (reset hasła, weryfikacja, przypomnienia) — czeka na dane SMTP
✅Dane administratora w polityce prywatności (RODO) — v0.25

Jak wznowić pracę (gdy limit przerwie sesję)

Otwórz nową rozmowę w folderze krotkofalowka i napisz: „kontynuuj roadmapę z portal/docs/ROADMAP.md”. Stan każdej wersji: CHANGELOG.md, docs/NOTATKI.md, git log/git tag. Wdrożenie: tools/deploy.sh.

Kolejka (zlecona 2026-10-04, robić po kolei)

  • ✅ v0.32 Kursy klubowe: grupa z kodem, prowadzący widzi postęp i gotowość kursantów (za ich zgodą przez dołączenie) · tryb „rzutnik” ze ściągami tematów
  • ✅ v0.33 Szara linia i warunki na pasmach (mapa dnia/nocy, zegar UTC, SFI/Kp, które pasmo otwarte)
  • ✅ v0.34 Trening odbioru znaków wywoławczych w CW (jak RufzXP) z wynikami
  • ✅ v0.35 Nauka ze słuchu (czytanie pytań i odpowiedzi na głos)
  • ✅ v0.36 Słowniczek pojęć z linkami z pytań
  • ✅ v0.37 Podstrona dla CB i PMR (pomysł Błażeja): kanały, zasady, sprzęt, przepisy, kody, przemienniki/grupy

Pomysły na kolejne sesje (zapisane 2026-10-04)

  • ✅ v0.16: pytanie dnia na stronie głównej.

  • ✅ v0.17: przełącznik motywu jasny/ciemny.

  • ✅ v0.31: pełny test portalu (klikacz + testy funkcji), poprawki profilu i klubów.

  • ✅ v0.29–v0.30: fiszki; przypomnienia w kalendarzu telefonu (.ics).

  • ✅ v0.26–v0.28: bezpieczeństwo (CSP, nagłówki, limity), dziennik nasłuchów SWL, karty QSL i SWL z dziennika.

  • ✅ v0.25: panel admina (dwuklik), odwiedzający dziennie, dane administratora RODO.

  • ✅ v0.24: polskie nazwy krajów, kraj przy znaku i podpowiedź „nowy kraj”, raport „Twój tydzień”.

  • ✅ v0.23: wydarzenia klubowe z moderacją.

  • ✅ v0.22: kraje DXCC i kontynenty w dyplomach.

  • ✅ v0.21: „Portal w liczbach” na stronie głównej; AO-123 w satelitach.

  • ✅ v0.20: anonimowe statystyki odwiedzin (zamiast Umami — lżej, bez nowego kontenera).

  • ✅ v0.19: publiczne wizytówki znaku (opt-in).

  • ✅ v0.18: „W eterze” na stronie głównej, seria pytania dnia; geo-blokada zdjęta dla portalu (Google).

  • Szybkie (1 krótka sesja): przypięcie wyniku egzaminu próbnego do profilu publicznego.

  • Średnie: poradnik C4FM/WIRES-X; polskie zawody krajowe w kalendarzu (kalendarz PZK).

  • Czeka na Błażeja: SMTP (poczta), monitor Uptime Kuma, format ADMS z radia, Google Search Console.

Priorytety Błażeja (2026-10-04)

  1. Bezpieczeństwo. 2. To, co zachęca do odwiedzin i powrotów. 3. Jak najlepsze zdawanie egzaminu. 4. Łatwa obsługa portalu.

Kolejka po 13:45 (2026-10-04)

  • ✅ v0.51 Ranking treningu znaków CW (RufzXP)
  • Mapa kursów i klubów z najbliższymi zajęciami
  • ✅ v0.56 Egzamin próbny zlecany grupie kursu (prowadzący zleca, widzi wyniki)
  • ✅ v0.38 Zachęty do powrotów: wyzwanie tygodnia, „Twój dzień” (powtórki, cel, seria, dni do egzaminu), przewodnik dla nowych
  • ✅ v0.47 Zdawalność: ostatnia prosta, błędy z egzaminów próbnych · (zostało: pytanie dnia z najsłabszego przedmiotu, egzamin na żywo dla grupy)
  • Obsługa: wyszukiwarka całego portalu, przegląd użyteczności na telefonie

Codzienny pulpit krótkofalowca i integracje (pomysł Błażeja 2026-10-04 — PRIORYTET)

  1. ✅ v0.41 „Potrzebne!” w spotach: DX-y i parki POTA, których nie masz w dzienniku (nowy kraj / pasmo / emisja) — wyróżnione na żywo; klik w spot → gotowy wpis do dziennika.
  2. ✅ v0.39 Wyszukiwarka znaku: kraj, kontynent, strefy CQ/ITU, odległość i azymut anteny (krótka i długa droga) od twojego lokatora, historia twoich łączności z tą stacją, wizytówka z portalu, linki QRZ/HamQTH/QRZCQ.
  3. ✅ v0.42 Potwierdzenia QSL z LoTW i eQSL: import pliku potwierdzeń (lotwreport.adi / eQSL ADIF) → status „potwierdzone” w dzienniku; dyplomy liczone osobno: przeprowadzone / potwierdzone (DXCC wymaga potwierdzeń). Bez przechowywania haseł do zewnętrznych serwisów.
  4. ✅ v0.42 (bez druku seryjnego) Status QSL w dzienniku: wysłane / otrzymane (papier, LoTW, eQSL), lista „do wysłania”, druk kart seryjnie.
  5. ✅ v0.43 Pulpit dnia (/pulpit/): zegar UTC, warunki, „potrzebne” spoty, najbliższy przelot ISS, zawody w ten weekend, wydarzenia w okolicy, przemienniki w pobliżu — wszystko na jednym ekranie.
  6. ✅ v0.50 Parki POTA w Polsce na mapie + aktywacje na żywo
  7. Później (wymaga kluczy/zgód serwisów): wysyłka do QRZ Logbook kluczem API, Club Log — tylko jeśli da się bez przechowywania haseł.

Pomysły Claude — „portal, który przyciąga” (2026-10-04)

Na żywo / codziennie:

  • „Potrzebne!” w spotach (nowy kraj/pasmo dla ciebie) + powiadomienie w przeglądarce, gdy pojawi się potrzebny DX
  • Pulpit dnia: UTC, warunki, potrzebne spoty, ISS, zawody w weekend, wydarzenia w okolicy
  • ✅ v0.44 Mapa „kto teraz słucha/nadaje” (QRV)
  • Aktualności krótkofalarskie: zbiorczy kanał z RSS (PZK, UKE, AMSAT, DX-newsy) z podsumowaniem — tylko nagłówki i linki
  • Kalendarz DX-peditions (nadchodzące wyprawy z linkiem do źródła) Społeczność:
  • ✅ v0.44 „QRV dziś wieczorem”: umawianie łączności (sked)
  • ✅ v0.46 Ściana sukcesów z gratulacjami
  • ✅ v0.46 Mentorzy
  • ✅ v0.55 Konkurs miesiąca: łowca kwadratów Dla świeżaków:
  • ✅ v0.45 Ścieżka „od zera do pierwszego QSO” z odhaczaniem etapów (egzamin → pozwolenie → radio → antena → przemiennik → pierwsza łączność)
  • ✅ v0.53 Doradca „jakie radio na start”
  • ✅ v0.53 Krok po kroku: wniosek o pozwolenie w UKE Dla wyjadaczy:
  • ✅ v0.48 Planer anten (bez Yagi — do dodania z pewnym źródłem wymiarów)
  • ✅ v0.49 Statystyki dziennika
  • ✅ v0.54 Etykiety QSL do druku (A4 3×8)
  • Kalkulator mocy ERP/EIRP i zgodności z przepisami (PEM)