No association with the author or publisher. This is a site I built for my own learning.
This is an interactive study platform for Martin Kleppmann's Designing Data-Intensive Applications. It helps you actively retrieve and retain the concepts in the book rather than just reading passively.
- Chapter Activities: Each chapter has a system design puzzle, a misconception check, a timed recall block, a 30-question quiz (with optional AI grading), and spaced repetition flashcards.
- Midterm & Final Exams: Randomized timed exams (40/60 questions) spanning multiple chapters, with deferred grading and one-click AI grading.
- Dashboard: Track your mastery, answered questions, active chapters, and exam scores over time.
Start the Flask server using the launch script:
./launch.shGo to: 👉 http://localhost:8080/index.html
To use AI grading for open-ended questions, create a .env file at the root. We support Google Gemini, OpenAI, and Anthropic Claude:
LLM_PROVIDER="gemini" # gemini, openai, or claude
LLM_KEY="your_api_key_here" # API key for the chosen provider
LLM_MODEL="gemini-3.5-flash" # optional: overrides provider's default model (e.g. gpt-4o, claude-3-5-sonnet-latest)(Note: The Web UI will automatically detect the configuration in your .env file and use these parameters when you trigger AI grading from the browser).
You can also run AI grading directly in your terminal:
# Exports your progress first from the UI, then run:
./grade.sh
# You can override the provider and model via CLI arguments:
./grade.sh --provider openai --model gpt-4o-miniTo wipe all local progress, database exports, and grading logs:
./reset_databaseThis codebase was generated using agentic AI coding assistants (colloquially known as "vibe coding") under human direction.
Additionally, the platform uses Generative AI to grade open-ended responses. Please verify AI-generated feedback against the textbook.
This project is licensed under the MIT License - see the LICENSE file for details.

