← Back

AnkiLite — Time-Aware Spaced Repetition Flashcards

Tags: Angular · Django REST · JWT Auth · SQLite · MongoDB · Spaced Repetition · Time-Aware Grading

AnkiLite is an Anki-inspired flashcards + spaced repetition web app, built end-to-end with a focus on transparency and control. Instead of hiding the scheduling logic, AnkiLite makes review behavior configurable per deck and adds time-aware learning signals (how quickly you answered) to support smarter practice workflows.

What Makes It Distinct (Not a Clone)

User Flow

  1. Register / Login (JWT)
  2. Create decks (with configurable review intervals)
  3. Add cards (front/back + optional tags)
  4. Review in either:
    • Due (SRS): only shows cards currently scheduled as due
    • Cram: shows cards for practice even if not due

Scheduling Modes

Each deck supports two deterministic scheduling modes:

Review Signals (Time-Aware)

For every review, AnkiLite records timing metadata:

These are stored as review events so you can later analyze difficulty trends, “hesitation” cards, speed vs accuracy, and overall study behavior.

Backend Design

Core API Endpoints

Frontend Design

Repo Structure (High-Level)

Run Locally

  1. Backend:
    • Activate venv
    • Run migrations
    • python manage.py runserver (http://127.0.0.1:8000)
  2. MongoDB:
    • docker compose up -d
  3. Frontend:
    • npm install
    • npm start (http://localhost:4200)

Future Ideas

Links