karta-wedkarska.pl
A free platform for studying and mock-testing for the Polish fishing licence exam. Study mode with explanations, server-graded exam simulation, an atlas of 55 fish species, a catch log with map picking and progress stats. Next.js, Prisma, PostgreSQL, PWA.

The Problem
People preparing for the Polish fishing licence exam usually work from a PDF of the regulations and random forum quizzes: no explanations, no progress tracking and no answer to the question that actually matters - am I ready yet?
The Solution
A free platform with two working modes. Study mode gives immediate feedback and an explanation for every question, groups questions into the official sections of the Polish angling regulations, and brings wrong answers back for review. Exam mode is a timed simulation with a question map, graded on the server - one trial exam is available without creating an account.
Beyond the tests
- Stats and progress - an exam-readiness indicator, per-section accuracy and badges for milestones
- Fish atlas - 55 species with photos, legal sizes and protection periods, plus a recognition quiz
- Catch log - a private journal with map-based spot picking, personal records and a gallery on the angler profile
- Guide - articles published from the admin panel on a weekly queue
Technical Decisions
Next.js App Router with Server Actions, PostgreSQL through Prisma and Auth.js v5 - email and password plus Google and Facebook sign-in. Exam grading deliberately stays on the server: the client never receives the answer key before an attempt is finished.
Images in questions and in the atlas are AVIF only, the app installs as a PWA with a basic offline mode, and Playwright covers the critical paths. The fishing-spot map runs on MapLibre and OpenFreeMap, with no paid map provider. Sentry reports production errors.
GDPR is not bolted on at the end: an account can be exported and deleted, and deletion leaves a retention-compliant tombstone instead of orphaned rows.
Status
- Live in production and completely free - no payments, no ads
- Admin panel: questions with CSV/JSON import, categories, exam configurations, the fish atlas, users, newsletter and bug reports
- Self-hosted on my own VPS: the app under systemd, Postgres in Docker, behind a reverse proxy
- The source is private - what is public is the running platform