Update:added documentation folder and added all documentation required

This commit is contained in:
mahlatseclayton
2026-07-30 18:51:18 +02:00
parent cb5acb20a0
commit 6641ea66cb
17 changed files with 742 additions and 419 deletions

56
docs/RELATIONSHIPS.md Normal file
View File

@@ -0,0 +1,56 @@
# Entity Relationships and Data Lifecycle
## System Architecture Model
The application operates as a single-table relational model optimized for local-first desktop usage.
```mermaid
classDiagram
class Task {
+int id
+string title
+string description
+string due_date
+string topic
+TaskStatus status
+boolean is_archived
+string created_at
+boolean computeIsOverdue()
}
class TaskStatus {
<<enumeration>>
Todo
In-Progress
Complete
}
Task "1" -- "1" TaskStatus : holds
```
## State Transitions & Task Lifecycle
A task record moves through defined state transitions:
```mermaid
stateDiagram-v2
[*] --> Todo : Task Created
Todo --> InProgress : User updates status
InProgress --> Complete : Task completed
Complete --> InProgress : Reopened
Todo --> Archived : Soft Deleted
InProgress --> Archived : Soft Deleted
Complete --> Archived : Soft Deleted
Archived --> Todo : Restored (Unarchived)
```
## Overdue Derivation Logic
Overdue state is derived dynamically at query runtime using the following logic:
- Condition 1: `status !== 'Complete'`
- Condition 2: `due_date < current_date` (ISO format `YYYY-MM-DD`)
If both conditions are met, `is_overdue` evaluates to `true`. Completed or archived tasks are never marked as overdue.