# nuxt-prawo-jazdy

## Required

The [db-prawo-jazdy](https://git.mandarynki.eu/netman/db-prawo-jazdy) project is designed for this one in mind, so use it in conjunction with this - visit it for more details

^^ Above is kind of outdated, project moved from PostgreSQL to SQLite - I included a `database.db` file in the `db/` folder, although it has older dataset of questions from the Ministry - foreshadowing...

You also need the exam media files from the (Ministry of Infrasture)[https://www.gov.pl/web/infrastruktura/prawo-jazdy] - the latest files should be there

The newest at the moment of me writing this (December 16th 2025) are the (visualisations for questions from November 2025)[https://www.gov.pl/pliki/mi/pytania_egzaminacyjne_na_prawo_jazdy_11_2025.zip]

# To-do:

- [x] re-forge database structure (good for now)
- [x] choose category (good for now)
- [x] come up with how to show results appropriately
- [x] better answer click recognition
- [x] beautify website (good for now)
- [x] <b>Fixed?</b> Needs testing, but should be fine question-mark? - fix pinia middleware between pages, MAJOR ISSUE - finishing exam sometimes redirects to homepage instead of results
- [x] question timers
- [x] exam (& results?) warning leave message on exit and timer end (and definitely on refresh)
- [x] add keybinds:
  - S - start
  - D - nast.pyt
  - X - koniec egzaminu (na pewno chcesz zakonczyc egzamin?)
  - T - Tak
  - N - Nie
  - A - A
  - B - B
  - C - C
- [ ] i18n - pl, en, de, ua (not all questions are available in ua, api handle)
  - [ ] UI i18n
    - [x] pl
    - [x] en
    - [ ] de
    - [ ] ua
  - [ ] db: examstore add language field, api handle languages
- [ ] db: (revise) script for processing, (revise and) share appropriate files
- [ ] clean up js code in exam.vue and result.vue (currently a little bit of a mess)

## Some information about the project

My intention is, to share access to test exams free of charge, you don't have to pay me - although you can, I greatly appreciate if you donate!

In the future I will host this project publicly `aaS`, and will probably put non-invasive, privacy friendly ads if it gains enough traction

All data used by this software is public information by definition provided in the Polish Constitution - (article 61.)[https://www.sejm.gov.pl/prawo/konst/polski/kon1.htm], and can be acquired by either checking above links on the gov website, or by writing to the Ministry ((if something happened to be missing))[placeholder_for_post_about_missing_points_column]

This project is a website mimicking an official driver's license theoritical exam (for different license categories) with a seperate media server, connected using drizzle ORM to a SQLite database

## Setup

This project utilizes `pnpm`, thus it is recommended

```bash
pnpm install
```

## Development Server

Start the development server on `http://localhost:3000`:

```bash
pnpm run dev
```

## Production

Build the application for production:

```bash
pnpm build
```

Locally preview production build:

```bash
pnpm preview
```

Check out the [Nuxt documentation](https://nuxt.com/docs) for more information.

### [Licensing](./LICENSE) (AGPL-3.0-only)

```
nuxt-prawo-jazdy: Polish driver's license theoritical exam nuxt web app

Copyright (C) 2025 NetMan

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, AGPL-3.0-only.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
```
