A study / exam-prep app where the content is plain Markdown files and the interactive demos are plain React components. Built with Vite, deployed to GitHub Pages. Content is in Czech and covers the VUT FIT state exams — the bachelor SZZ (BIT) and the master's MSZ across 17 specializations — with 54 courses and 1000+ interactive visualisations.
npm install
npm run dev # dev server with hot reload
npm run build # static bundle in dist/
npm run preview # preview the built bundle
- By course → topic → subtopic, with deep-linkable anchors and per-subtopic progress.
- By track — filter to your programme (BIT or a master's specialization) and its exam areas.
- By state-exam topics (okruhy), cross-referenced to the course material, with collapsible Rychlý start cheat-sheets per okruh.
- Global mindmap — how all courses connect; each course also has its own mindmap.
- Komise — what each examiner historically asked at the state exam, mapped onto okruhy, with a min-max by commission view: type the names of who will examine you and see which topics to prioritise. The committee data is not bundled — it is fetched at runtime from a remembered, user-editable list of repositories (the default one is removable/restorable). See FRAMEWORK.md §11.
Press S anywhere (or /, ⌘K / Ctrl-K) to search.
src/
framework/ the engine — router, parser, loader, pages, blocks; Komise data layer
(komise.js) + page (komise-page.jsx)
viz/ interactive visualisations (one file per viz, self-registered)
public/
content/
manifest.json declares every course, topic, subtopic, exam set
courses/<id>/<topic>/<subtopic>.md
mindmaps/<id>.json, _global.json
repos/
fit-msz.json default Komise repository (committee questions), fetched at runtime
tools/
committee-data/ builds public/repos/fit-msz.json from the committee Excel (+ smoke test)
video-data/ curated-video data pipeline
To add or edit content, see FRAMEWORK.md. You will not
normally touch src/framework/ — that's the engine.
public/repos/fit-msz.json is generated from the source Excel by
python3 tools/committee-data/build.py (member-name normalisation + question→topic
mapping). Re-run it after renaming content topics so the mapping stays in sync. The
repository format and pipeline are documented in
tools/committee-data/README.md and FRAMEWORK.md §11;
verify the page with node tools/committee-data/smoke.mjs.
Pushing to main triggers .github/workflows/deploy.yml, which builds with
VITE_BASE=/<repo>/ and publishes dist/ to GitHub Pages.