Physics Exam Practice App
How I learnt what good software actually means.
Producing value is the ultimate test of software. Users don’t care about the cool tech or clever architecture; often, they don’t even care about half the features. They have a problem they want your software to solve.
The problem
My classmates and I were preparing for the advanced physics component of the Hungarian érettségi, the secondary-school leaving exam whose results also count towards university admission. We were advised to start two years in advance by solving questions from past exams1. But the archive mixes questions from across the curriculum. That makes it tedious to practise a specific topic and hard to tell whether you’ve found a gap in your understanding or a question simply covers material you haven’t learnt yet.
The solution
I manually extracted the questions and diagrams from years of exam PDFs, a perfect way to procrastinate on studying. Then my physics teacher, the project’s other stakeholder, and I categorised every question by topic. Finally, I built a small web interface over the database. The site still runs at fizika.schmelczer.dev2, making the questions searchable and generating mock exams using only topics a student should already have mastered.
I built it early on, with only a rudimentary understanding of full-stack development. Yet it was my most popular app for years, measured by both active-user count and time spent per user. It has stood the test of time too. Students at my old school, PTE Babits Mihály Gyakorló Gimnázium3, still use it to prepare for the same exam.
The evolution of the solution
The app has gone through a few iterations. It started as the most spaghetti-like PHP app imaginable, backed by an entirely unnecessary MySQL database. But it worked. I got a good score on the exam and left the site running for future students.
Eventually, hosting a full-blown database became too expensive to justify, so I migrated everything to a static site, hosted first on Firebase, then on GitHub Pages, and now on my own server. Year after year, students emailed me asking how to add the latest questions, and guiding each of them through the GitHub workflow became tiresome. So at the beginning of 2026, I vibecoded a small CRUD interface that edits a JSON file on disk. The file is under version control, so a bad edit can always be undone. I’m back to running a backend server, but the infrastructure was already in place, so the marginal cost was negligible. Happy users, happy maintainer.
Conclusion
Two takeaways from this have shaped my values. First, data can be far more important than the app around it: Fizika’s wrapper has been replaced twice without changing its core value. Second, building software for the thrill of engineering is fun. But building software to create value at minimal cost is how you create actual value.
- past exams: https://www.oktatas.hu/kozneveles/erettsegi/feladatsorok↩
- https://fizika.schmelczer.dev/↩
- PTE Babits Mihály Gyakorló Gimnázium: https://babits.pte.hu/↩
