Case StudyTypeScript / Next.js / PostgreSQL / Prisma / PWA

karta-wedkarska.pl

Darmowa platforma do nauki i egzaminu próbnego na kartę wędkarską. Tryb nauki z wyjaśnieniami, symulacja egzaminu oceniana po stronie serwera, atlas 55 gatunków ryb, dziennik połowów z mapą i statystyki postępu. Next.js, Prisma, PostgreSQL, PWA.

Podgląd projektu karta-wedkarska.pl

Problem

Do egzaminu na kartę wędkarską przygotowuje się zwykle z PDF-a z regulaminem i przypadkowych testów na forach: bez wyjaśnień, bez śledzenia postępu i bez odpowiedzi na najważniejsze pytanie - czy jestem już gotowy.

Rozwiązanie

Darmowa platforma z dwoma trybami pracy. W trybie nauki każde pytanie ma natychmiastowy feedback i wyjaśnienie, pytania są pogrupowane w działy zgodne z Regulaminem Amatorskiego Połowu Ryb, a błędne odpowiedzi wracają w powtórkach. Tryb egzaminu to symulacja z limitem czasu i mapą pytań, oceniana po stronie serwera - jeden egzamin próbny jest dostępny bez zakładania konta.

Więcej niż testy

  • Statystyki i postęp - wskaźnik gotowości do egzaminu, skuteczność w podziale na działy i odznaki za kamienie milowe
  • Atlas ryb - 55 gatunków ze zdjęciami, wymiarami i okresami ochronnymi, z quizem rozpoznawania
  • Dziennik połowów - prywatny dziennik z wyborem miejsca na mapie, rekordami i galerią w profilu wędkarza
  • Poradnik - artykuły publikowane z panelu admina w kolejce tygodniowej

Decyzje techniczne

Next.js w App Routerze z Server Actions, PostgreSQL przez Prismę i Auth.js v5 - logowanie e-mailem z hasłem oraz przez Google i Facebooka. Ocena egzaminu jest świadomie zamknięta na serwerze: klient nigdy nie dostaje klucza odpowiedzi przed końcem podejścia.

Obrazki w pytaniach i w atlasie trzymam wyłącznie w AVIF, aplikacja jest instalowalna jako PWA z podstawowym trybem offline, a krytyczne ścieżki pokrywają testy Playwrighta. Mapa miejsc połowu działa na MapLibre i OpenFreeMap, bez płatnego dostawcy map. Błędy produkcyjne raportuje Sentry.

RODO nie jest doklejone na koniec: konto można wyeksportować i usunąć, a po usunięciu zostaje wyłącznie „nagrobek" zgodny z zasadami retencji, zamiast osieroconych danych w bazie.

Status

  • Serwis działa na produkcji i jest w całości darmowy - bez płatności i bez reklam
  • Panel admina: pytania z importem CSV/JSON, kategorie, konfiguracje egzaminów, atlas ryb, użytkownicy, newsletter i zgłoszenia błędów
  • Hosting na własnym VPS: aplikacja pod systemd, Postgres w Dockerze, za reverse proxy
  • Kod jest prywatny - publicznie dostępna jest działająca platforma
karta-wedkarska.pl | Adam Szczotka