diff --git a/doc/AppUpdate/files.md b/doc/AppUpdate/files.md new file mode 100644 index 0000000..375cd40 --- /dev/null +++ b/doc/AppUpdate/files.md @@ -0,0 +1,10 @@ +Backend: +- public/app/version.json +- public/app/haushalt.apk + +Frontend: +- views/Startpage.vue → Update-Button + +App: +- data/AppUpdateApi.kt +- data/AppUpdater.kt diff --git a/doc/AppUpdate/spec.md b/doc/AppUpdate/spec.md new file mode 100644 index 0000000..2e0f23d --- /dev/null +++ b/doc/AppUpdate/spec.md @@ -0,0 +1,3 @@ +- version: public/app/version.json +- apk: public/app/haushalt.apk +- start page: button check version, download apk, trigger install diff --git a/doc/Base.md b/doc/Base.md new file mode 100644 index 0000000..6d982c7 --- /dev/null +++ b/doc/Base.md @@ -0,0 +1,2 @@ +- layout: Breadcrumb, main area +- start page: /, empty diff --git a/doc/Base/files.md b/doc/Base/files.md new file mode 100644 index 0000000..3383c6a --- /dev/null +++ b/doc/Base/files.md @@ -0,0 +1,10 @@ +Frontend: +- App.vue +- components/Icon.vue +- views/Startpage.vue +- router/index.js → / + +App: +- MainActivity.kt +- MainScreen.kt +- StartScreen.kt diff --git a/doc/Base/spec.md b/doc/Base/spec.md new file mode 100644 index 0000000..6d982c7 --- /dev/null +++ b/doc/Base/spec.md @@ -0,0 +1,2 @@ +- layout: Breadcrumb, main area +- start page: /, empty diff --git a/doc/Setup.md b/doc/Setup.md new file mode 100644 index 0000000..921da78 --- /dev/null +++ b/doc/Setup.md @@ -0,0 +1,5 @@ +- Symfony ./backend +- Vue ./frontend +- Kotlin ./app +- Kotlin copy vue changes +- Symfony, Vue and Kotlin can start \ No newline at end of file diff --git a/doc/Setup/files.md b/doc/Setup/files.md new file mode 100644 index 0000000..cdb6ee1 --- /dev/null +++ b/doc/Setup/files.md @@ -0,0 +1,13 @@ +Prozess-Modul (keine Code-Dateien, Init der Apps). + +Backend: +- backend/ (Symfony 7.4, PHP 8.3) + +Frontend: +- frontend/ (Vue 3, Vite) + +App: +- app/ (Kotlin, Jetpack Compose) + +Infrastruktur: +- .ddev/ (DDEV-Umgebung) diff --git a/doc/Setup/spec.md b/doc/Setup/spec.md new file mode 100644 index 0000000..142fd32 --- /dev/null +++ b/doc/Setup/spec.md @@ -0,0 +1,5 @@ +- Symfony ./backend +- Vue ./frontend +- Kotlin ./app +- Kotlin copy vue changes +- Symfony, Vue and Kotlin can start diff --git a/doc/Task/Task.md b/doc/Task/Task.md new file mode 100644 index 0000000..c483908 --- /dev/null +++ b/doc/Task/Task.md @@ -0,0 +1,12 @@ +- 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 + +- 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, 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), abort icon (abort) \ No newline at end of file diff --git a/doc/Task/features.md b/doc/Task/features.md new file mode 100644 index 0000000..e69de29 diff --git a/doc/Task/files.md b/doc/Task/files.md new file mode 100644 index 0000000..d451938 --- /dev/null +++ b/doc/Task/files.md @@ -0,0 +1,30 @@ + +Backend: +- Entity/Task.php +- Enum/TaskStatus.php +- Collection/TaskCollection.php +- DTO/TaskRequest.php +- Repository/TaskRepository.php +- Service/TaskManager.php +- Controller/Api/TaskController.php + +Frontend: +- views/Task.vue +- views/TaskAll.vue +- views/TaskEdit.vue +- stores/tasks.js +- services/api.js → taskApi +- router/index.js → /tasks, /tasks/all, /tasks/:id + +App: +- data/Task.kt +- data/TaskApi.kt +- ui/task/TaskScreen.kt +- ui/task/TaskAllScreen.kt +- ui/task/TaskEditScreen.kt +- ui/task/TaskListViewModel.kt +- ui/task/TaskAllViewModel.kt +- ui/task/TaskEditViewModel.kt +- ui/task/DatePickerField.kt +- ui/task/StatusDropdown.kt +- ui/task/DateFormat.kt diff --git a/doc/Task/spec.md b/doc/Task/spec.md new file mode 100644 index 0000000..1839c37 --- /dev/null +++ b/doc/Task/spec.md @@ -0,0 +1,12 @@ +- 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 + +- 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, 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), abort icon (abort) diff --git a/doc/TaskSchema/AppUpdate.md b/doc/TaskSchema/AppUpdate.md new file mode 100644 index 0000000..ea8fd8d --- /dev/null +++ b/doc/TaskSchema/AppUpdate.md @@ -0,0 +1,3 @@ +- version: public/app/version.json +- apk: public/app/haushalt.apk +- start page: button check version, download apk, trigger install \ No newline at end of file diff --git a/doc/TaskSchema/TaskSchema.md b/doc/TaskSchema/TaskSchema.md new file mode 100644 index 0000000..0ff413b --- /dev/null +++ b/doc/TaskSchema/TaskSchema.md @@ -0,0 +1,17 @@ +- 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, bin icon (remove date) +- 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 \ No newline at end of file diff --git a/doc/TaskSchema/files.md b/doc/TaskSchema/files.md new file mode 100644 index 0000000..7d8a5fd --- /dev/null +++ b/doc/TaskSchema/files.md @@ -0,0 +1,31 @@ +Backend: +- Entity/TaskSchema.php +- Enum/TaskSchemaStatus.php +- Collection/TaskSchemaCollection.php +- DTO/TaskSchemaRequest.php +- Repository/TaskSchemaRepository.php +- Service/TaskSchemaManager.php +- Service/TaskGenerator.php +- Controller/Api/TaskSchemaController.php +- Message/GenerateTasksMessage.php +- MessageHandler/GenerateTasksMessageHandler.php +- Schedule.php + +Frontend: +- views/SchemaAll.vue +- views/SchemaCreate.vue +- views/SchemaEdit.vue +- stores/schemas.js +- services/api.js → schemaApi +- router/index.js → /schemas, /schemas/create, /schemas/:id + +App: +- data/TaskSchema.kt +- data/TaskSchemaApi.kt +- ui/schema/SchemaAllScreen.kt +- ui/schema/SchemaCreateScreen.kt +- ui/schema/SchemaEditScreen.kt +- ui/schema/SchemaAllViewModel.kt +- ui/schema/SchemaCreateViewModel.kt +- ui/schema/SchemaEditViewModel.kt +- ui/schema/SchemaComponents.kt diff --git a/doc/TaskSchema/spec.md b/doc/TaskSchema/spec.md new file mode 100644 index 0000000..5778575 --- /dev/null +++ b/doc/TaskSchema/spec.md @@ -0,0 +1,17 @@ +- 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, bin icon (remove date) +- 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 diff --git a/base.md b/doc/base.md similarity index 100% rename from base.md rename to doc/base.md diff --git a/module.md b/module.md deleted file mode 100644 index b58071b..0000000 --- a/module.md +++ /dev/null @@ -1,49 +0,0 @@ -# Setup module -- Symfony ./backend -- Vue ./frontend -- Kotlin ./app -- Kotlin copy vue changes -- Symfony, Vue and Kotlin can start - -# Base module -- layout: Breadcrumb, main area -- start page: /, empty - -# Task module -- 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 - -- 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, 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), 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 -- 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, bin icon (remove date) -- 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 -