REST API
Content lives in a SQLite database (data/academy.db) generated from the Markdown files in content/courses by scripts/build-db.mjs. Every page and every JSON file below is generated from it at build time, so the whole site is served as static files.
| Method | Endpoint | Returns |
|---|---|---|
| GET | /api/tracks.json | Learning tracks in order, each with its courses. |
| GET | /api/courses.json | All courses in learning order with lesson, question and cheat-sheet counts. |
| GET | /api/courses/{slug}/course.json | One course: overview, versions, lifecycle, tools (HTML) and the module → lesson syllabus. |
| GET | /api/courses/{slug}/lessons/{lesson}/lesson.json | One lesson with grade, priority and HTML body. |
| GET | /api/courses/{slug}/questions.json | Every interview question of one course, in course order. |
| GET | /api/courses/{slug}/cheatsheet.json | Cheat-sheet sections for one course. |
| GET | /data/questions.json | All interview questions with level, priority and HTML answer (filter them on your side). |
| GET | /data/search.json | Plain-text rows for lessons, questions, cheat sheets and courses, used by the site search. |
| GET | /api/stats.json | Totals: tracks, courses, lessons, questions, scenario questions, cheat-sheet sections. |
Levels and priorities
- Lesson grade: Basic, Intermediate, Advanced.
- Question level: Beginner, Intermediate, Advanced, Scenario.
- Priority: High (asked very often), Medium, Low.