Files
2026-09-04 11:44:49 +02:00

3.6 KiB
Raw Permalink Blame History

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-Sync
  • core/views.py – Hauptlogik, Item-Erstellung/Bearbeitung, Teams, Collections, API
  • core/forms.py – Django Forms
  • core/templates/core/ – UI Templates
  • core/tests.py – Tests
  • my2dos/settings.py – Django Settings
  • README.md – Setup und Basis-Dokumentation

Zentrale Konzepte

  • Item.kind: todo, note, link, journal
  • Item.visibility: private, team, public
  • Tags werden aus #tag im Content extrahiert und mit Item.sync_metadata() synchronisiert.
  • Team-Tags entsprechen Team.slug.
  • Ein Team-Tag wie #myteam macht ein Item automatisch zum Team-Item.
  • Team-Items behalten die Verknüpfung über Item.team und Item.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

Zugriff auf produktive Aufgaben

  • Produktive Aufgaben liegen unter https://my2dos.rucki.ch und können über die JSON-API abgerufen werden.
  • Lokale Zugangsdaten stehen in .env und dürfen nicht committed oder ausgegeben werden:
    • MY2DOS_API_URL
    • MY2DOS_API_KEY
  • API-Authentifizierung: Header X-Api-Key: $MY2DOS_API_KEY oder Authorization: Bearer $MY2DOS_API_KEY.
  • Offene Remote-Aufgaben anzeigen:
./scripts/my2dos_remote_tasks.py list
  • Aufgabe als erledigt markieren:
./scripts/my2dos_remote_tasks.py done <id>
  • Direkt per curl abrufen:
source .env
curl -H "X-Api-Key: $MY2DOS_API_KEY" "$MY2DOS_API_URL/api/items/?limit=500"

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 core ausfü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.