# Datei 
Implementierungs-Schritte als Feature-Module - WIE es gebaut wird 

# Setup module 
## Backend
- Setup Symfony ./backend
## Frontend
- Setup Vue ./frontend, router, pinia
- App.vue - no content
## App
- Setup Kotlin ./app, navigation compose
- MainScreen.kt - no content
## Features 
- Symfony, Vue and Kotlin minimal setup, no content

# Base module 
## Backend
- nothing 
## Frontend
- App.vue - layout: breadcrumb, main area
- router - / start page route
- Startpage.vue - start page, no content
## App 
- MainScreen.kt - layout: breadcrumb, main area
- StartScreen.kt - start page, no content
## Features 
- Standard layout for all pages: breadcrumb, main area

# Task module
## Backend
- Task - Task entity
    - id, name, date (due), status
- TaskStatus - Enum for task status
    - active, done, inactive
- TaskController - Task routes
    - index, show, create, update, delete, toggle (active/done)
- TaskManager - Task CRUD
    - create, update, delete, toggle
- TaskRepository - Default task queries
    - currentTasks()
- TaskDto - Dto for create and update task 
## Frontend
- Startpage.vue - quader button for tasks
- App.vue - register task routes in breadcrumb.
- router - tasks routes /tasks, /tasks/all, /tasks/create, /tasks/:id
- Task.vue
    - Display current tasks (now to +2 weeks and without date) as list with name (done strikethrough), onclick toggle status, order by date (no-date then date asc, hide inactive)
    - top right nav - list icon (all tasks), + icon (create), eye icon (toggle task visibility by active/done)
- TaskAll.vue
    - Display all tasks as list with name (done strikethrough, past faded), pencil icon (edit), bin icon (delete), onclick toggle status, order by date (no-date then date asc)
    - top right nav - + icon (create)
- TaskCreate.vue - Display form with name-text, date-date, status-select, save-button, abort-button
- TaskEdit.vue
    - Display form with name-text, date-date, status-select, update-button, reset-button, abort-button, use current values
- api.js - API routes to symfony
## App
- StartScreen.kt - quader button for tasks
- MainScreen.kt - register task routes in breadcrumb.
- NavHost - tasks routes /tasks, /tasks/all, /tasks/create, /tasks/:id
- TaskScreen.kt
    - Display current tasks (now to +2 weeks and without date) as list with name (done strikethrough), onclick toggle status, order by date (no-date then date asc, hide inactive)
    - top right nav - list icon (all tasks), + icon (create), eye icon (toggle task visibility by active/done)
- TaskAllScreen.kt
    - Display all tasks as list with name (done strikethrough, past faded), pencil icon (edit), bin icon (delete), onclick toggle status, order by date (no-date then date asc)
    - top right nav - + icon (create)
- TaskCreateScreen.kt - Display form with name-text, date-date, status-select, save-button, abort-button
- TaskEditScreen.kt
    - Display form with name-text, date-date, status-select, update-button, reset-button, abort-button, use current values
- TaskApi.kt - API calls to symfony
## Features
- Start page: task button 
- Task page: current tasks ordered by date, filter done
- TaskAll page: all tasks ordered by date, past faded, delete task
- TaskCreate page: create task
- TaskEdit page: update task 

# App update module
## Backend
- public/app/version.json - version info (versionCode, apkFile)
- public/app/haushalt.apk - current APK (manually deployed)
## App
- AppUpdateApi.kt - version check endpoint
- AppUpdater.kt - check version, download APK, trigger install
- StartScreen.kt - "Update prüfen" button with state feedback
- AndroidManifest.xml - REQUEST_INSTALL_PACKAGES, FileProvider
- file_paths.xml - cache path for downloaded APK
## Features
- Manual update check from start screen
- Download and install new APK from server
- No Play Store required

# TaskSchema module
## Backend
- Task - add schema (n:1)
- TaskSchema - id, name, status, taskStatus, date, repeat (json), start, end
    - repeat=null → single, repeat={"daily"/"weekly"/"monthly":...} → repeating
- TaskSchemaStatus - active, inactive
- TaskController - remove create route
- TaskManager - remove create
- TaskSchemaController - index, show, create, update, delete
- TaskSchemaManager - create (single=task only, repeat=schema+generate), update (remove+generate), delete (remove+schema)
- TaskGenerator - generateTasks, removeTasks, generateNewTasks (scheduler)
- Scheduler - daily at 03:00, messenger:consume via DDEV daemon
- Migration - task_schema table + schema_id FK
## Frontend
- TaskCreate.vue removed, SchemaCreate/SchemaEdit/SchemaAll added
- Task.vue + TaskAll.vue - calendar + plus icons → /schemas, /schemas/create
- Form: name, (status + taskStatus), repeat, weekday/monthday grid, (start + end)
## App
- same changes as Frontend
## Features
- Single schema: task directly, no schema persisted
- Repeat schema: tasks for period (max 14 days), scheduler fills daily
- Update: remove non-past tasks + regenerate
- Delete: remove non-past tasks + schema
