# 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