2.9 KiB
2.9 KiB
my2dos – Projektkontext für Pi
Zweck
my2dos ist eine kleine persönliche Produktivitäts- und Wissens-App für Aufgaben, Notizen, Links, Journal-Einträge, Tags, Teams, Collections und Kanban.
Tech Stack
- Python / Django
- Django Templates
- HTMX für partielle Updates
- Alpine.js für UI-Interaktionen im Browser
- SQLite lokal (
db.sqlite3) - Virtuelle Umgebung:
.venv/
Wichtige Pfade
core/models.py– Datenmodelle, Tag-/Link-Metadaten-Synccore/views.py– Hauptlogik, Item-Erstellung/Bearbeitung, Teams, Collections, APIcore/forms.py– Django Formscore/templates/core/– UI Templatescore/tests.py– Testsmy2dos/settings.py– Django SettingsREADME.md– Setup und Basis-Dokumentation
Zentrale Konzepte
Item.kind:todo,note,link,journalItem.visibility:private,team,public- Tags werden aus
#tagim Content extrahiert und mitItem.sync_metadata()synchronisiert. - Team-Tags entsprechen
Team.slug. - Ein Team-Tag wie
#myteammacht ein Item automatisch zum Team-Item. - Team-Items behalten die Verknüpfung über
Item.teamundItem.visibility = team. - Interne Links haben die Form
[[note:1]],[[todo:2]]oder[[3]]. - Collections können manuell oder tag-basiert sein.
- Tag-basierte Collections verwenden Content-Tags, Team-Tags sollen dabei nicht als Content-Filter genutzt werden.
Häufige Befehle
Setup:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
.venv/bin/python manage.py migrate
.venv/bin/python manage.py createsuperuser
Server starten:
.venv/bin/python manage.py runserver
Tests ausführen:
.venv/bin/python manage.py test core
Einzelne Testklasse ausführen:
.venv/bin/python manage.py test core.tests.TestKlasse
Arbeitsregeln für Coding-Agenten
- Vor Änderungen relevante Dateien lesen.
- Änderungen möglichst klein und gezielt halten.
- Bestehende UI-/Template-Struktur respektieren.
- Nach funktionalen Änderungen Tests ergänzen oder anpassen.
- Wenn möglich mindestens
.venv/bin/python manage.py test coreausführen. - Keine grossen Refactorings ohne explizite Nachfrage.
- Keine Änderungen an Datenbank/Migrationen ohne Notwendigkeit.
- Bei Änderungen an Team-/Tag-Logik besonders auf Seiteneffekte bei Collections, API und Bearbeiten-Formularen achten.
Bekannte/Für die Zukunft relevante Themen
- Team-Tags und Content-Tags klar getrennt halten.
- Bearbeiten von Team-Items darf die Team-Verknüpfung nicht verlieren.
- Collections müssen Sichtbarkeit/Team-Kompatibilität von enthaltenen Items beachten.
- Mobile UI nutzt eigene Tag-Picker und Quick-Composer-Interaktionen.
Notizen für neue Sessions
Wenn eine neue Pi-Session in diesem Verzeichnis gestartet wird, zuerst diese Datei, README.md und bei Bedarf core/models.py, core/views.py, core/forms.py sowie core/tests.py berücksichtigen.