116 lines
4.9 KiB
Markdown
116 lines
4.9 KiB
Markdown
# 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
|