Free, open-source platform for pilot license exam preparation.
PPLka.pl is an interactive web application helping future pilots prepare for the theoretical pilot license exam. We believe that knowledge should be free and easily accessible — that's why we're releasing this project as open source.
- Learning Mode — Go through all exam questions. The system remembers your answers and tracks your progress, showing only the questions that still need review.
- Question Database — Browse and filter the entire question database by categories, tags, and search by content.
- Mock Exam — Test your knowledge under realistic conditions, with time limits and random question selection, just like the real exam.
- Answer Explanations — Detailed explanations of correct answers are available for selected questions.
- PPL(A) — Private Pilot License (Aeroplane)
- SPL — Sailplane Pilot License
- BPL — Balloon Pilot License
- PPL(H) — Private Pilot License (Helicopter)
- Next.js — React Framework
- TypeScript — Typed JavaScript
- Tailwind CSS — Styling
- Drizzle ORM — Database ORM
- PostgreSQL — Database
- tRPC — Type-safe API
- Node.js (v20+)
- Bun or npm/yarn/pnpm
- PostgreSQL (or Docker)
- Clone the repository:
git clone https://github.com/fmkra/pplka.git
cd pplka- Install dependencies:
bun install- Copy
.env.exampleto.envand fill in the environment variables:
cp .env.example .env- Start the database (optionally with Docker):
./start-database.sh- Apply migrations:
bun run db:migrate- Start the development server:
bun run devThe application will be available at http://localhost:3000.
| Script | Description |
|---|---|
bun run dev |
Starts the development server |
bun run build |
Builds the application for production |
bun run start |
Runs the built application |
bun run db:generate |
Generates Drizzle migrations |
bun run db:migrate |
Applies migrations to the database |
bun run db:studio |
Opens Drizzle Studio |
bun run lint |
Runs the linter |
bun run format:write |
Formats code with Prettier |
Question explanations along with scripts generating SQL queries to add them to the database are available in a separate repository:
github.com/fmkra/pplka-explanations
- Source Code: GNU General Public License v3.0
- Question Explanations: Creative Commons BY-NC-ND 4.0 — available in a separate repository
Created by Filip Krawczyk.
Fly safe!