diff --git a/devlog/DEVLOG.md b/devlog/DEVLOG.md index c47687a..5656970 100644 --- a/devlog/DEVLOG.md +++ b/devlog/DEVLOG.md @@ -8,7 +8,98 @@ die Übersicht aus `scripts/zeit.sh summe`. | Meilenstein | Art | Minuten | Stunden | | ----------- | ------ | ------- | -------- | | M1 | claude | 161 | 2,68 | -| **Gesamt** | | **161** | **2,68** | +| M2 | claude | 44 | 0,73 | +| **Gesamt** | | **205** | **3,42** | + +--- + +## 2026-09-10 – M2: Aufgaben und Projekte + +**Dauer:** 44 Minuten (15:57–16:41), Art `claude`. + +**Ziel der Sitzung:** Erfassen und Wiederfinden — Aufgaben, Inbox, Ideen und +Projekte. Noch ohne Kalender. + +### Erledigt + +- Datenmodell `Aufgabe` und `Projekt` samt Migration +- Schnellerfassung, Inbox mit Einsortieren, Aufgabenliste mit Filtern +- Ideen als eigene Ansicht, mit Übernahme in eine Aufgabe +- Projekte mit Arbeitspaketen, Meilensteinen und Fortschritt +- Startseite zeigt jetzt, was überfällig oder demnächst fällig ist +- 53 neue Unit-Tests, 11 neue Integrationsprüfungen, 4 neue E2E-Tests +- Handbuchseiten zu Aufgaben, Ideen und Projekten; Bilder neu aufgenommen + +### Entscheidungen mit Begründung + +**Die Inbox ist kein eigener Zustand.** Eine Aufgabe liegt genau dann in der +Inbox, wenn sie keinen Bereich hat. Ein zusätzliches Feld „einsortiert" +hätte mit der Zuordnung auseinanderlaufen können; so ist der Zustand nicht +darstellbar. + +**Projekt als eigenes Modell, nicht als Aufgabentyp.** Ein Projekt hat +selbst weder Aufwand noch Fälligkeit — beides ergibt sich aus dem Inhalt. +`ARBEITSPAKET` und `MEILENSTEIN` bleiben Typen der Aufgaben _innerhalb_ +eines Projekts. + +**Verworfene Aufgaben zählen gar nicht in den Fortschritt.** Weder als +erledigt noch als offen. Sonst sähe ein Projekt fertig aus, weil die Hälfte +gestrichen wurde — eine Zahl, die lügt, ist schlechter als keine. + +**Sortiert wird in der Anwendung, nicht in SQL.** Die Reihenfolge ist +mehrstufig (offen vor abgeschlossen, dann Termin, dann Priorität, dann Titel +mit deutscher Sortierung). Als geprüfte reine Funktion steht sie an einer +Stelle; eine zweite Fassung in SQL wäre eine Fehlerquelle. Bei den erwarteten +Mengen ist das unkritisch — sollte es einmal eng werden, ist der Ort für die +Änderung klar. + +**Filter stehen in der Adresse.** Eine gefilterte Liste lässt sich als +Lesezeichen ablegen, und der Zurück-Knopf tut, was er soll. + +**Statuswechsel folgen festen Übergängen.** Aus `ERLEDIGT` und `VERWORFEN` +geht es nur zurück nach `OFFEN`. Wer per Formular etwas anderes einreicht, +bekommt eine Meldung — nicht einen stillen Zustandssprung. + +**Fälligkeit in Kalendertagen, nicht in Stunden.** Was heute um 23:00 fällig +ist, ist heute fällig. Alles andere fühlt sich beim Benutzen falsch an. + +**Natives `