Ein KI-gestützter Lernbegleiter — gebaut auf dem aktuellen Stand der Lernwissenschaft.
Du lädst deine Vorlesungsfolien hoch. Das System extrahiert die Konzepte, generiert Lernkarten, plant deine täglichen Sessions, coacht dich sokratisch durch die Lücken — und verfeinert sich selbst, wenn du immer wieder an denselben Stellen scheitert.
Kein Gamification. Kein Fluff. Nur was funktioniert.
Die vier Kernmechanismen des Systems haben die stärkste empirische Evidenz in der Lernforschung:
| Mechanismus | Effect Size | Quelle | Im System |
|---|---|---|---|
| Retrieval Practice | g = 0.50–0.61 | Rowland 2014, Adesope 2017 | Lernkarten, Coaching, Proof Checker |
| Spaced Repetition | Top-2 weltweit | Donoghue & Hattie 2021 (242 Studien, 169.000+ Probanden) | FSRS-Algorithmus |
| Interleaving | moderat–hoch | Dunlosky 2013 | Multi-Concept Review, Plan Engine |
| Self-Explanation | moderat | Chi et al. 1989, Dunlosky 2013 | Sokratisches Coaching |
Der Scheduling-Algorithmus basiert auf Free Spaced Repetition Scheduler (FSRS), trainiert auf 700 Millionen Anki-Reviews. Er berechnet für jede Karte individuell:
- Stability — wie lange du die Information behältst
- Difficulty — wie schwer dir das Konzept fällt
- Due Date — exakt wann die nächste Wiederholung den höchsten Lerneffekt hat
Das Resultat: Du wiederholst Karten kurz vor dem Vergessen — dem Punkt, an dem Abruf die Gedächtnisspur am stärksten festigt (Bjork: Forgetting-Effort-Hypothesis).
Das LLM gibt niemals die Antwort. Es legt den Finger in die Lücke:
Du: "SVD ist stabiler weil A^T A symmetrisch ist"
Coach: "Aber A^T A ist immer symmetrisch — wo genau kommt die
Stabilität her? Was passiert mit κ(A^T A) vs κ(A)?"
Du: "Ah — die Konditionszahl quadriert sich bei A^T A..."
Dieses Prinzip erzwingt tiefes Verarbeiten statt oberflächliche Wiedererkennung. Studien zeigen, dass selbst generierte Erklärungen deutlich besser behalten werden als gelesene (Generation Effect).
Laut Dunlosky et al. (2013) sind die meisten Standard-Lerntechniken ineffektiv:
| Technik | Utility | Warum |
|---|---|---|
| Highlighting | low | Passiv, keine Verarbeitung |
| Re-Reading | low | Vertrautheit ≠ Wissen |
| Zusammenfassungen schreiben | low–moderate | Skill-abhängig, selten effektiv |
Das System bietet diese Techniken bewusst nicht an.
- PDF-Upload & Ingest — marker-pdf parst math-aware, OpenAI-Embeddings in ChromaDB
- Konzept-Extraktion — LLM identifiziert atomare Lernziele aus deinem Material
- Lernkarten mit FSRS — Rating 1–4, adaptives Scheduling, Tastaturkürzel
- Sokratisches Coaching — SSE-Streaming, RAG-Kontext aus deinen PDFs, kein Antwort-Leaken
- Socratic method refinement — darf Missverständnisse nach genuinen Versuchen korrigieren mit präziser Definition
- Dynamic length — tieferes Coaching für neue Konzepte, schnellere Reviews für bekannte
- Coach-readiness signal — Coach signalisiert wann du bereit bist aufzuhören
- Summary + MC-Quiz — bei Sessionende: AI-generierter Recap + kleines Verständnis-Check-Quiz
- Tagesplan-Engine — topologische Sortierung nach Konzept-Abhängigkeiten + FSRS-Filter
- Progress Dashboard — Reviews letzte 7 Tage, Fälligkeiten, Lernstreak
- Analytics — tägliche und monatliche Review-Statistiken
- Concept Graph — interaktive Visualisierung der Konzept-Hierarchie
- Worked Examples — On-demand LLM-Schritt-für-Schritt-Lösungen (Opus, nur auf Anfrage)
- Proof Checker — freie Texteingabe, LLM-Feedback + Hints, bis zu 5 Versuche
- Knowledge Graph Refinement — bei 3+ "Again"-Ratings generiert das System neue Kartenvorschläge aus anderen Perspektiven (geometrisch, Anwendung, Gegenbeispiel)
- User Preferences — Sprache, Tageslimit, Reihenfolge, Theme
- Exam Mode — Mock-Klausuren unter Zeitdruck (geplant für Phase 4)
- Multi-User-Auth — aktuell Single-User lokal
- Mobile UI — Desktop-First, kein responsives Layout
| Bereich | Technologie |
|---|---|
| Backend | Python 3.12 · FastAPI · SQLAlchemy 2.x · Alembic · Pydantic V2 |
| Datenbank | SQLite (lokal) · ChromaDB (Vektoren) |
| KI | Anthropic Claude (Haiku / Sonnet / Opus) · OpenAI Embeddings |
| Spaced Repetition | py-fsrs |
| Frontend | Next.js 16 (App Router) · React 19 · TypeScript strict · Tailwind 4 |
| Mathe | KaTeX (Server-Side) + remark-math + rehype-katex |
| Tests | pytest (214) · Vitest (67) |
- Python 3.12+
- Node.js 18+
- uv (Python package manager)
- Anthropic API Key — Pflicht
- OpenAI API Key — für Embeddings (optional, aber für Ingest-Pipeline benötigt)
git clone <repo-url> StudyAssistant
cd StudyAssistantcd backend
# Abhängigkeiten installieren (Basis + Ingest-Pipeline)
uv sync --extra ingest
# .env erstellen
cp .env.example .envÖffne .env und trage deine Keys ein:
ANTHROPIC_API_KEY=sk-ant-...
DATABASE_URL=sqlite:///./data/sqlite/study.db
ENVIRONMENT=development
# Für PDF-Ingest und Embeddings:
OPENAI_API_KEY=sk-...# Datenbankverzeichnisse anlegen
mkdir -p data/sqlite data/chroma data/uploads
# Datenbank-Migrationen ausführen
uv run alembic upgrade head
# Backend starten
uv run uvicorn app.main:app --reload --port 8000Backend läuft auf http://localhost:8000 — API-Docs unter http://localhost:8000/docs.
cd frontend # aus dem Projektroot
npm install
npm run devFrontend läuft auf http://localhost:3000.
Wenn du keinen OpenAI-Key hast, kannst du trotzdem fast alles nutzen — nur die Ingest-Pipeline (PDF → Embeddings → ChromaDB) benötigt ihn. Karten und Coaching funktionieren auch ohne RAG-Kontext.
Gehe zu /courses → "Neuer Kurs". Name des Kurses, Klausurdatum eintragen.
Das Klausurdatum ist der harte Eingabeparameter für die Plan-Engine — sie plant rückwärts von diesem Datum.
Lade alle Vorlesungsfolien, Skripte oder Paper hoch (PDF). Klicke dann auf "Ingest" — dieser Schritt:
- Parst das PDF math-aware (LaTeX-Formeln bleiben erhalten)
- Zerlegt den Text in ~500-Token-Chunks
- Erstellt OpenAI-Embeddings und speichert sie in ChromaDB
- Lässt Claude die atomaren Konzepte extrahieren
Das dauert je nach Größe 1–5 Minuten. Einmal tun — danach sind alle Features verfügbar.
Nach dem Ingest findest du unter /courses/[id]/concepts alle extrahierten Konzepte. Für jedes Konzept kannst du:
- Karten manuell anlegen (Frage/Antwort)
- Karten vom LLM vorschlagen lassen
Tipp: Eigene Karten funktionieren oft besser, weil du sie in deiner eigenen Sprache formulierst.
Der empfohlene Tagesablauf (45–60 Minuten):
Die Plan-Engine erstellt deinen Tagesplan basierend auf:
- Welche Karten heute fällig sind (FSRS)
- Topologische Reihenfolge der Konzepte (Grundlagen vor Aufbau)
- Deinem täglichen Kartenlimit (einstellbar in
/settings)
Karten einzeln durcharbeiten:
| Taste | Aktion |
|---|---|
Space / Enter |
Karte aufdecken |
1 |
Again — habe es nicht gewusst |
2 |
Hard — war schwer, aber richtig |
3 |
Good — korrekt mit etwas Nachdenken |
4 |
Easy — sofort gewusst |
Wichtig: Sei ehrlich bei den Ratings. Das System ist nur so gut wie deine Selbsteinschätzung.
"Wenn du dich anstrengst, lernst du. Wenn alles flutscht, bist du auf zu leichtem Niveau."
Nach dem Review: Für Konzepte, bei denen du oft "Again" oder "Hard" gewählt hast, öffne eine Coaching-Session.
Nicht fragen "Was ist X?" — sondern erklären:
❌ "Erkläre mir was Backpropagation ist"
✅ "Ich erkläre dir Backpropagation: [deine Erklärung]... Stimmt das so?"
✅ "Ich verstehe nicht warum wir bei der Kettenregel von rechts nach links gehen"
Der Coach antwortet nie mit der Lösung — er fragt weiter, bis du sie selbst erarbeitest.
Wenn du zum ersten Mal auf ein Konzept stößt, das du noch nie gesehen hast:
- Öffne eine Karte
- Drücke "Lösung anzeigen" (erscheint nach dem Aufdecken)
- Lese das vollständige Schritt-für-Schritt-Beispiel (generiert mit Opus — dem stärksten Modell)
- Erkläre dir selbst, warum jeder Schritt so gemacht wird
Erst nach dem Worked Example aktiv üben — das entspricht dem Cognitive-Load-Prinzip von Sweller.
Für Karten mit proof_mode aktiviert:
- Schreibe deinen Beweis in natürlicher Sprache ins Textfeld
- LLM prüft: korrekt, Lücken, nächster Hint
- Bis zu 5 Versuche mit akkumuliertem Feedback
- Erst wenn der Beweis korrekt ist, wird die Karte geschlossen
Wenn du für ein Konzept 3× "Again" innerhalb von 14 Tagen wählst, schlägt das System automatisch neue Karten aus anderen Perspektiven vor:
- Geometrische Intuition — visueller Zugang
- Anwendungsbeispiel — konkreter Use-Case
- Gegenbeispiel — was das Konzept nicht ist
- Konzeptverbindung — Relation zu verwandtem Stoff
Du kannst jeden Vorschlag vor dem Approve bearbeiten. Nur approved Karten gehen ins FSRS-System.
Visualisierung aller Konzepte und ihrer Abhängigkeiten. Knoten mit vielen "Again"-Ratings werden als Refinement-Kandidaten markiert — gut für den Überblick welche Bereiche noch unsicher sind.
| Tag | Was tun |
|---|---|
| Täglich | Plan generieren → Review → ggf. 1–2 Coaching-Sessions |
| Wöchentlich | Refinement-Queue leeren, Concept-Graph checken |
| Vor Klausur | Intensivierung: mehr Reviews pro Tag, mehr Coaching |
Der wichtigste Hebel: Kontinuität. 45 Minuten täglich über 12 Wochen schlägt 8-Stunden-Sessions in der letzten Woche — das ist die Kernaussage von Donoghue & Hattie (2021).
# Backend (214 Tests)
cd backend && uv run pytest -m "not live" -q
# Frontend (67 Tests)
cd frontend && npm test
# Typen & Linting
cd backend && uv run mypy app/ --strict # 0 errors
cd backend && uv run ruff check app/ # 0 violations
cd frontend && npm run build # ✅StudyAssistant/
├── backend/
│ ├── app/
│ │ ├── api/ # FastAPI-Router
│ │ ├── db/models/ # SQLAlchemy-Modelle (10 Tabellen)
│ │ └── services/ # LLM Gateway, FSRS, RAG, Ingest, Plan Engine
│ ├── alembic/versions/ # 7 Migrationen
│ └── tests/ # 23 Testdateien
├── frontend/
│ ├── app/ # Next.js App Router (8 Routen)
│ └── components/ # 13 React-Komponenten
├── data/ # SQLite + ChromaDB + PDFs (gitignored)
├── research/ # Lernwissenschaftliche Grundlagen
└── specs/ # Feature-Specs
GET /health
GET /me · /me/preferences · PATCH /me/preferences
POST /api/courses · GET /api/courses · GET /api/courses/{id}
POST /api/courses/{id}/materials # PDF-Upload
POST /api/materials/{id}/ingest # Ingest-Pipeline
GET /api/courses/{id}/concepts · GET /api/concepts/{id}/refinement-status
POST /api/concepts/{id}/refinements
GET /api/cards · POST /api/cards
POST /api/cards/{id}/review
POST /api/cards/{id}/worked-example
POST /api/cards/{id}/proof-check
GET /api/review/due · POST /api/reviews/multi
POST /api/coaching/sessions # Create session
POST /api/coaching/sessions/{id}/turn # SSE-Stream turn
POST /api/coaching/sessions/{id}/end # End session, get summary + quiz
GET /api/analytics/summary · /daily · /monthly
POST /api/courses/{id}/plan/today
GET /api/courses/{id}/plan/today
PATCH /api/plans/{id}/items/{idx}/complete
GET /api/refinements
PATCH /api/refinements/{id}/cards/{idx}/approve
PATCH /api/refinements/{id}/cards/{idx}/reject
- Dunlosky, J. et al. (2013). Improving Students' Learning With Effective Learning Techniques. Psychological Science in the Public Interest.
- Rowland, C. A. (2014). The effect of testing versus restudy on retention. Psychological Bulletin.
- Adesope, O. O. et al. (2017). Rethinking the use of tests: A meta-analysis of practice testing. Review of Educational Research.
- Donoghue, G. M., & Hattie, J. A. C. (2021). A meta-analysis of ten learning techniques.
- Bjork, E. L., & Bjork, R. A. (2011). Making things hard on yourself, but in a good way. Psychology and the Real World.
- Sweller, J., van Merrienboer, J., & Paas, F. (1998). Cognitive architecture and instructional design.
- Mayer, R. E. (2009). Multimedia Learning (2nd ed.). Cambridge University Press.