|
Download FOR_SMLFLG.md from smlflg/StudyAgent: direct link, hf CLI and curl.
- Browser
- Download file 4.14 kB
-
https://huggingface.co/smlflg/StudyAgent/resolve/main/FOR_SMLFLG.md
- Command line
-
hf download hf://smlflg/StudyAgent/FOR_SMLFLG.md
-
curl -L -o FOR_SMLFLG.md https://huggingface.co/smlflg/StudyAgent/resolve/main/FOR_SMLFLG.md
4.14 kB
StudyAgent β FOR_SMLFLG
Was ist das?
ADHS-freundlicher Study Buddy: Hilft Studenten mit ADHS durch ihr Semester. Keine starren Plaene β Micro-Steps, Buddy-Ton, Dopamin beim Start statt beim Abschluss.
Warum
Samuel IS die Zielgruppe. 569 ChatGPT + 232 Claude Sessions dokumentieren das Problem. Kern-Insight: Dopamin kommt beim Task-BEGINN, nicht beim Complete. Jeder Step = frischer Start.
Pain Points die das System loest
- Lernplaene die nie halten β elastischer Plan, kein Guilt
- WIP explodiert β max 2 Faecher gleichzeitig (hard enforcement in API)
- Zeitdruck als Feature β Panik-Modus bei <48h
- Routinedokumentation unmoeglich β Micro-Steps (je 5 Min)
- Session-Memory β nie wieder bei Null anfangen
Architektur & Tech-Stack
StudyAgent/
βββ main.py # FastAPI app, alle Routes, htmx-Partials (~516 LOC)
βββ agent.py # MiniMax M2.5 API-Call, Fallback-Steps ohne Key
βββ models.py # SQLAlchemy Models (Subject, Deadline, MicroStep, StudySession)
βββ database.py # SQLite Setup, Session-Maker
βββ requirements.txt
βββ static/style.css # Warm palette, ADHS-friendly Design
βββ templates/
β βββ base.html
β βββ index.html
β βββ partials/ # subject_card, deadline_item, micro_step_card,
β # elastic_plan, progress_journey, session_banner
βββ study_agent.db # auto-created
Tech: Python + FastAPI (async, lifespan) + SQLAlchemy + SQLite + htmx + Jinja2 + MiniMax M2.5 API
Starten / Nutzen
cd ~/Projekte/StudyAgent
# Erste Einrichtung
pip install -r requirements.txt
export MINIMAX_API_KEY=your-key-here # optional β ohne Key laufen Fallback-Steps
# Starten
.venv/bin/uvicorn main:app --reload # oder: uvicorn main:app --reload
# open http://localhost:8000
Was funktioniert (implementiert)
- Dashboard (
GET /) β aktive Faecher, naechste Deadlines, naechster Step, Session-Banner, Panik-Indikatoren - Faecher CRUD (
POST/DELETE /subjects) β WIP-Limit 2 wird server-seitig enforced - Deadlines anlegen (
POST /deadlines) β auto-generiert sofort Micro-Steps via MiniMax M2.5 - Steps abschliessen/ueberspringen (
POST /steps/{id}/complete|skip) β naechster Step wird inline geladen - Elastischer Plan (
GET /deadlines/{id}/plan) β auto-komprimiert wenn Steps die verbleibende Zeit uebersteigen - Replan (
POST /deadlines/{id}/replan) β loescht pending+skipped, generiert neu - Session-Tracking β Sessions werden auto-gestartet, after 30 Min Inaktivitaet auto-geschlossen
- Panik-Modus (
is_panic_mode()) β greift bei <48h, reduziert auf 3-4 wesentliche Steps - AI-Fallback β ohne
MINIMAX_API_KEYkommen sinnvolle Dummy-Steps (kein Absturz)
Was fehlt / bekannte Issues
.envvorhanden (MINIMAX_API_KEY), in.gitignoregeschuetzt..env.exampleals Vorlage vorhanden.- Browser-Test-Flow (Subject anlegen β Dashboard β Steps) noch nicht durchgespielt
fi_date-aehnlicher Edge-Case: wenndue_datebereits vergangen ist, liefertis_panic_mode()Falsestatt sinnvollen Zustand- Kein Deployment-Setup (Fly.io geplant)
- Kein Auth (MVP-bewusste Entscheidung)
Entscheidungen & Lessons Learned
- htmx statt React β kein Build-Step, Partials direkt vom Server, funktioniert ohne JS-Framework
- Buddy-Ton in Code β "Kein Stress, machen wir anders." direkt in Responses, kein separates i18n
- Dummy-Steps als Fallback β API-Fehler oder fehlender Key darf nie das Feature brechen
- WIP-Limit server-seitig β nicht nur UI-Warnung, sondern echter
HTTPException-Block imPOST /subjects - Auto-compress elastisch β 20% Buffer-Formel: wenn
pending * 5min > hours_left * 0.8 * 60β Replan
Next Steps (priorisiert)
MINIMAX_API_KEYin.env-File konfigurieren und testen- Browser-End-to-End-Test: Subject β Deadline β Steps β Complete/Skip
- Edge-Case fixen: vergangene Deadlines richtig behandeln
- Sprint 3: Panik-Modus visuell sichtbar machen (Banner, roten Rahmen)
- Fly.io Deployment vorbereiten