--- title: A Physics Practice App for the Hungarian Érettségi description: A static jQuery site I built in high school to drill past exam questions. 659 questions, more than a decade of past papers, still online and still used. date: 2026-05-28 projectPeriod: '2017-2018' thumbnail: src: ./_assets/fizika.jpg alt: Screenshot of the Fizika practice app showing topic-selection buttons over a light textured background. tags: ['web', 'tools'] role: Question database, frontend, backend stack: ['jQuery', 'vanilla HTML/CSS', 'Node/Express', 'JSON', 'localStorage'] outcome: A free practice app real students still find when they search for past érettségi physics papers audience: general links: - label: Live url: https://fizika.schmelczer.dev - label: Source url: https://home.schmelczer.dev/git/andras/fizika --- I needed it. In my last year of high school I was about to sit the _emelt szintű_ (advanced-level) physics érettségi, and the practice material I could find online was either paywalled or scattered across PDFs that wouldn't tell you whether your answer was right. So one evening I started typing past exam questions into a JSON file. A few weeks later I had something resembling a study tool, and a few weeks after that I had 659 questions covering more than a decade of past papers. The site is intentionally small. A static frontend on jQuery, four CSS files, a JSON blob of questions, a folder of scanned diagrams from the original papers. You pick a topic (_Mechanika, Hőtan, Elektromosság, Atomfizika_) or hunt down a specific year's exam, get a randomised quiz, answer, and the page colours each row green or red. Past results sit in `localStorage`, because the audience was high schoolers; account-less was the privacy answer. It outgrew Firebase eventually. I moved the data to a small Express backend so I could keep editing questions without a paid plan, with a JSON file and an image folder as the storage layer. The admin routes have no auth; instead, the service stays off the public internet and I edit through an SSH-forwarded localhost. Fine for a one-person CMS, terrible advice for anything with multiple editors. What I'd change if I were starting it now: - **Astro instead of jQuery plus a Node server.** The whole thing could be one static site that re-renders on push. No backend, no CSP fiddling, no Docker. - **Markdown source, not a hand-edited JSON file.** Editing questions in JSON is fine until you forget a comma at 1am and the site stops loading. - **A real licence note on the question text.** The papers are public exam material, but it's worth saying so somewhere on the page. It's been online in some form for eight years. Every spring I get a few emails from students asking whether I'll add the latest year's paper. I usually do, eventually. The thing I made for myself in 2017 is still doing its job for someone else's last year of high school, and that's the only metric on it I actually care about.