feat(habits): UI für Habit-Verwaltung (Web + Mobile) #486

Closed
opened 2026-06-16 07:38:29 +02:00 by pm-bot · 0 comments
Collaborator

Sub-Issue von #360 (Phase 4 abschließen).

Kontext

Das Backend für Habits-as-Candidate-Source ist seit ein paar Sprints fertig:

  • habits-Tabelle (Drizzle-Schema), HabitsService (CRUD), HabitsController (/habits)
  • HabitCandidateWriterService + HabitSpawnerCron (stündlich) erzeugen Candidates aus due Habits
  • Integration-Tests in apps/api/test/integration/habits.int-spec.ts

Was fehlt: UI um Habits anzulegen. Aktuell nur per API-Direktcall möglich (analog rc25-Lücke bei Kalender).

Akzeptanzkriterien

  • shared-types/habit.ts: habitSchema, createHabitRequestSchema, updateHabitRequestSchema
  • api-client/habits.ts: HabitsResource mit list, create, update, delete + Tests (inkl. Schema-Drift-Guard wie rc22-Lehrlauf)
  • feature-day-planner: HabitsSettingsScreen (Tamagui cross-platform), Liste + Add-Form (Titel + recurrenceDays + anchorDate), Delete-Button pro Row
  • Web: /einstellungen/habits route + Sidebar-Eintrag
  • Mobile: app/einstellungen/habits.tsx + Drawer-Einstellungen-Eintrag
  • Hooks useHabits, useCreateHabit, useDeleteHabit mit TanStack Query Invalidation

Out-of-Scope

  • Habit-Edit-Inline (nur Create + Delete für v1 UI)
  • RRULE-UI (nur recurrenceDays als simple number-of-days)
  • Habit-Streak-Anzeige
  • Empty-State-CTA auf /heute (kann später)

Release

rc27.

Bezug

  • Epic: #360 Phase 4
  • Pattern: analog rc25 (Calendar Settings UI #462)
Sub-Issue von #360 (Phase 4 abschließen). ## Kontext Das Backend für Habits-as-Candidate-Source ist seit ein paar Sprints fertig: - `habits`-Tabelle (Drizzle-Schema), HabitsService (CRUD), HabitsController (`/habits`) - HabitCandidateWriterService + HabitSpawnerCron (stündlich) erzeugen Candidates aus due Habits - Integration-Tests in `apps/api/test/integration/habits.int-spec.ts` Was fehlt: UI um Habits anzulegen. Aktuell nur per API-Direktcall möglich (analog rc25-Lücke bei Kalender). ## Akzeptanzkriterien - [ ] `shared-types/habit.ts`: `habitSchema`, `createHabitRequestSchema`, `updateHabitRequestSchema` - [ ] `api-client/habits.ts`: HabitsResource mit `list`, `create`, `update`, `delete` + Tests (inkl. Schema-Drift-Guard wie rc22-Lehrlauf) - [ ] `feature-day-planner`: HabitsSettingsScreen (Tamagui cross-platform), Liste + Add-Form (Titel + recurrenceDays + anchorDate), Delete-Button pro Row - [ ] Web: `/einstellungen/habits` route + Sidebar-Eintrag - [ ] Mobile: `app/einstellungen/habits.tsx` + Drawer-Einstellungen-Eintrag - [ ] Hooks `useHabits`, `useCreateHabit`, `useDeleteHabit` mit TanStack Query Invalidation ## Out-of-Scope - Habit-Edit-Inline (nur Create + Delete für v1 UI) - RRULE-UI (nur recurrenceDays als simple number-of-days) - Habit-Streak-Anzeige - Empty-State-CTA auf /heute (kann später) ## Release rc27. ## Bezug - Epic: #360 Phase 4 - Pattern: analog rc25 (Calendar Settings UI #462)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#486
No description provided.