Files
haushalt/module.md
Marek Lenczewski 4e81cea831 App update module
2026-04-12 10:46:14 +02:00

4.7 KiB

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

  • TaskSchema - TaskSchema entity
    • id, name, status, date, type, repeat, start, end
  • TaskType - Enum for schema type
    • single (create one task on date or null, delete schema after date or now if null)
    • repeat (create tasks depending on repeat in start-end range, delete after enddate)
  • TaskRepeat - Enum for schema repeat
    • daily, weekly (array with weekdays), monthly (array with monthdays)
  • TaskSchemaController - TaskSchema routes
    • index, show, create, update, delete
  • TaskSchemaManager - TaskSchema CRUD
    • create, update, delete
  • TaskSchemaRepository - TaskSchema queries
  • TaskGenerator - Create tasks from schema
    • generate

Category module

Backend

  • Category - Category entity
    • id, name, color
  • Task - Task entity
    • category
  • CategoryController - Category routes
    • index, show, create, update, delete
  • TaskSchemaManager - TaskSchema CRUD
  • TaskSchemaRepository - TaskSchema queries