# iammohdrazi/tasknest architecture

> Architecture diagram of the GitHub repository iammohdrazi/tasknest, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/iammohdrazi/tasknest
- Repository: https://github.com/iammohdrazi/tasknest

## Overview

TaskNest is a task-management application with two interfaces: a Flask web app and a terminal CLI. The web workflow handles sign-in, task operations, and task exports; both interfaces delegate task operations to their own service/model layers and SQLite databases. The README also documents JSON, CSV, and TXT web exports, while CLI reports provide CSV export and summaries. The web routes and core layers are excerpted; template rendering is visible in app.py, but template internals were not sampled.

Main entry points: [`app.py`](https://github.com/iammohdrazi/tasknest/blob/main/app.py) (Web routes and auth), [`cli_version/main.py`](https://github.com/iammohdrazi/tasknest/blob/main/cli_version/main.py) (CLI menu), [`models/task_model.py`](https://github.com/iammohdrazi/tasknest/blob/main/models/task_model.py) (Web task and user model), [`services/task_service.py`](https://github.com/iammohdrazi/tasknest/blob/main/services/task_service.py) (Web task service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_web_routes["Web routes and auth<br/>[app.py]"]
  node_web_views["Web templates"]
  node_web_export["Web task export<br/>[app.py]"]
end

subgraph group_cli["CLI application"]
  node_cli_main["CLI menu<br/>[main.py]"]
end

subgraph group_domain["Task domain"]
  node_web_service["Web task service<br/>[task_service.py]"]
  node_web_model["Web task and user model<br/>[task_model.py]"]
  node_cli_service["CLI task service<br/>[task_service.py]"]
  node_cli_model["CLI task model<br/>[task_model.py]"]
end

subgraph group_storage["Persistence and reports"]
  node_web_db_api["Web database access<br/>[database.py]"]
  node_web_db[("Web SQLite database<br/>[tasks.db]")]
  node_cli_db_api["CLI database access<br/>[database.py]"]
  node_cli_db[("CLI SQLite database<br/>[tasks.db]")]
  node_cli_reports["CLI reports<br/>[reports.py]"]
  node_web_reports["Web CSV report helper<br/>[reports.py]"]
end

node_user(("Web user"))
node_cli_user(("CLI user"))

node_user -->|"uses"| node_web_routes
node_web_routes -->|"renders"| node_web_views
node_web_routes -->|"calls task operations"| node_web_service
node_web_routes -->|"calls auth queries"| node_web_model
node_web_routes -->|"initializes"| node_web_db_api
node_web_export -->|"lists tasks"| node_web_service
node_web_routes -->|"routes exports"| node_web_export
node_web_service -->|"delegates task operations"| node_web_model
node_web_model -->|"gets connections"| node_web_db_api
node_web_db_api -->|"opens"| node_web_db
node_cli_user -->|"uses"| node_cli_main
node_cli_main -->|"calls task operations"| node_cli_service
node_cli_main -->|"requests reports"| node_cli_reports
node_cli_main -->|"initializes"| node_cli_db_api
node_cli_service -->|"delegates task operations"| node_cli_model
node_cli_reports -->|"reads tasks"| node_cli_model
node_cli_model -->|"gets connections"| node_cli_db_api
node_cli_db_api -->|"opens"| node_cli_db
node_web_reports -->|"reads tasks"| node_web_model

click node_web_routes "https://github.com/iammohdrazi/tasknest/blob/main/app.py"
click node_web_views "https://github.com/iammohdrazi/tasknest/tree/main/templates"
click node_web_export "https://github.com/iammohdrazi/tasknest/blob/main/app.py"
click node_cli_main "https://github.com/iammohdrazi/tasknest/blob/main/cli_version/main.py"
click node_web_service "https://github.com/iammohdrazi/tasknest/blob/main/services/task_service.py"
click node_web_model "https://github.com/iammohdrazi/tasknest/blob/main/models/task_model.py"
click node_web_db_api "https://github.com/iammohdrazi/tasknest/blob/main/db/database.py"
click node_web_db "https://github.com/iammohdrazi/tasknest/blob/main/db/tasks.db"
click node_cli_service "https://github.com/iammohdrazi/tasknest/blob/main/cli_version/services/task_service.py"
click node_cli_model "https://github.com/iammohdrazi/tasknest/blob/main/cli_version/models/task_model.py"
click node_cli_db_api "https://github.com/iammohdrazi/tasknest/blob/main/cli_version/db/database.py"
click node_cli_db "https://github.com/iammohdrazi/tasknest/blob/main/cli_version/db/tasks.db"
click node_cli_reports "https://github.com/iammohdrazi/tasknest/blob/main/cli_version/utils/reports.py"
click node_web_reports "https://github.com/iammohdrazi/tasknest/blob/main/utils/reports.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web_routes,node_web_views,node_web_export,node_user,node_cli_user toneBlue
class node_cli_main toneAmber
class node_web_service,node_web_model,node_cli_service,node_cli_model toneMint
class node_web_db_api,node_web_db,node_cli_db_api,node_cli_db,node_cli_reports,node_web_reports toneRose
```

## Components

### Web application

- [Web routes and auth](https://github.com/iammohdrazi/tasknest/blob/main/app.py): `app.py`
- [Web templates](https://github.com/iammohdrazi/tasknest/tree/main/templates): `templates`
- [Web task export](https://github.com/iammohdrazi/tasknest/blob/main/app.py): `app.py`

### CLI application

- [CLI menu](https://github.com/iammohdrazi/tasknest/blob/main/cli_version/main.py): `cli_version/main.py`

### Task domain

- [Web task service](https://github.com/iammohdrazi/tasknest/blob/main/services/task_service.py): `services/task_service.py`
- [Web task and user model](https://github.com/iammohdrazi/tasknest/blob/main/models/task_model.py): `models/task_model.py`
- [CLI task service](https://github.com/iammohdrazi/tasknest/blob/main/cli_version/services/task_service.py): `cli_version/services/task_service.py`
- [CLI task model](https://github.com/iammohdrazi/tasknest/blob/main/cli_version/models/task_model.py): `cli_version/models/task_model.py`

### Persistence and reports

- [Web database access](https://github.com/iammohdrazi/tasknest/blob/main/db/database.py): `db/database.py`
- [Web SQLite database](https://github.com/iammohdrazi/tasknest/blob/main/db/tasks.db): `db/tasks.db`
- [CLI database access](https://github.com/iammohdrazi/tasknest/blob/main/cli_version/db/database.py): `cli_version/db/database.py`
- [CLI SQLite database](https://github.com/iammohdrazi/tasknest/blob/main/cli_version/db/tasks.db): `cli_version/db/tasks.db`
- [CLI reports](https://github.com/iammohdrazi/tasknest/blob/main/cli_version/utils/reports.py): `cli_version/utils/reports.py`
- [Web CSV report helper](https://github.com/iammohdrazi/tasknest/blob/main/utils/reports.py): `utils/reports.py`

### Other components

- **Web user**
- **CLI user**

## Connections

- Web user → Web routes and auth: uses (evidence: `README.md`)
- Web routes and auth → Web templates: renders (evidence: `app.py`)
- Web routes and auth → Web task service: calls task operations (evidence: `app.py`)
- Web routes and auth → Web task and user model: calls auth queries (evidence: `app.py`)
- Web routes and auth → Web database access: initializes (evidence: `app.py`)
- Web task export → Web task service: lists tasks (evidence: `app.py`)
- Web routes and auth → Web task export: routes exports (evidence: `README.md`)
- Web task service → Web task and user model: delegates task operations (evidence: `services/task_service.py`)
- Web task and user model → Web database access: gets connections (evidence: `models/task_model.py`)
- Web database access → Web SQLite database: opens (evidence: `db/database.py`)
- CLI user → CLI menu: uses (evidence: `README.md`)
- CLI menu → CLI task service: calls task operations (evidence: `cli_version/main.py`)
- CLI menu → CLI reports: requests reports (evidence: `cli_version/main.py`)
- CLI menu → CLI database access: initializes (evidence: `cli_version/main.py`)
- CLI task service → CLI task model: delegates task operations (evidence: `cli_version/services/task_service.py`)
- CLI reports → CLI task model: reads tasks (evidence: `cli_version/utils/reports.py`)
- CLI task model → CLI database access: gets connections (evidence: `cli_version/models/task_model.py`)
- CLI database access → CLI SQLite database: opens (evidence: `cli_version/db/database.py`)
- Web CSV report helper → Web task and user model: reads tasks (evidence: `utils/reports.py`)
