update schema module
This commit is contained in:
150
module.md
150
module.md
@@ -1,115 +1,49 @@
|
||||
# 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
|
||||
# Setup module
|
||||
- Symfony ./backend
|
||||
- Vue ./frontend
|
||||
- Kotlin ./app
|
||||
- Kotlin copy vue changes
|
||||
- Symfony, Vue and Kotlin can start
|
||||
|
||||
# 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
|
||||
- layout: Breadcrumb, main area
|
||||
- start page: /, empty
|
||||
|
||||
# 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
|
||||
- task: id, name, date?, status, schema?
|
||||
- status: active, done, inactive, past (< today)
|
||||
- breadcrumb: /tasks, /tasks/all, /tasks/:id
|
||||
- period: today to +2 weeks
|
||||
- done task: strikethrough, less opacity, default eye hide
|
||||
- inactive task: less opacity, smaller
|
||||
|
||||
# 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
|
||||
- start page: /tasks button
|
||||
- tasks page: list tasks (name, toggle onclick), only period, group by date, no-date first, hide inactive, navigation (schemas, create, list, toggle, refresh)
|
||||
- all tasks page: list all task (name, toggle onclick, edit, delete), sort by date desc, no-date-first, navigation (schemas, create, refresh)
|
||||
- edit page: form (name, date, status), current values, buttons(save, reset, abort) remove schema on update
|
||||
- navigation: calender icon (schemas), + icon (create), list icon (all tasks), eye icon (toggle), arrow (refresh), pencil icon (edit), bin icon (delete), save icon (save), reset icon (reset), abort icon (abort)
|
||||
|
||||
# AppUpdate module
|
||||
- version: public/app/version.json
|
||||
- apk: public/app/haushalt.apk
|
||||
- start page: button check version, download apk, trigger install
|
||||
|
||||
# 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
|
||||
- task schema: id, name, status, taskStatus, type, date?, repeat?, start?, end?
|
||||
- status: active, inactive
|
||||
- type: single (show date), repeat (show repeat, start, end)
|
||||
- type(single, !date): just create task
|
||||
- type(single, date): create schema, schema creates task
|
||||
- type(repeat, daily/weekly/2weekly/4weekly/monthly): create schema, schema creates tasks
|
||||
- type(repeat, days): + icon (add input:date), add multiple dates, like single+date in bulk, create schema, schema creates tasks
|
||||
- schema: creates tasks in period, schema update and delete affects only tasks in period (no-past), start(today if null), delete schema (if end < today)
|
||||
- schema create: create tasks in period
|
||||
- schema update: remove and create task in period (if task ref schema)
|
||||
- schema delete: remove tasks in period (if task ref schema)
|
||||
- scheduler: execute 3:00, create task (if date=today), remove schemas (if end < today)
|
||||
|
||||
- router - /schemas, /schemas/create, /schemas/:id
|
||||
- list page: list all schemas (name, repeat label, edit, delete), navigation (create, refresh)
|
||||
- create page: form (name, status, taskStatus, type, date, repeat, weekday/monthday, start, end), buttons(save, abort)
|
||||
- edit page: like create but with current values
|
||||
|
||||
|
||||
Reference in New Issue
Block a user