Slovenian amateur radio exam practice

Amateur radio
Exam
Next.js
Tailwind CSS
What started of as a Flutter website for practicing Slovenian amateur radio exam questions, turned into a Next.js website with more...

How it started

When I wanted to practice for the Slovenian amateur radio exam, the only available website was a plain white page generating random questions. I decided to make a better website with a modern design.
I started with parsing the exam questions from four PDF files and storing them in a JSON file. Uploading the PDFs to a website that converts them to text, and to another website that extracts the images from the PDFs, I was able to extract the questions and answers with a Python script. One challenge was to correctly parse the questions and identifing the errors. The other challenge was to manually assign each question to a category.
Once the questions were parsed, I started with a Flutter app. The app had a simple mode that showed a random question and a practice exam generator. The website was hosted on GitHub Pages.

Next.js

Rewriting the website in Next.js was pretty trivial. After the initial rewrite, I expanded the website to give more information about the amateur radio exam. It briefly explains amateur radio, the exam, the categories and how to aquire a license after passing the exam.
The website is now hosted on Vercel and uses Vercel analytics to track the usage of the website.