# sanishpoudel/todo-list architecture

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

- Interactive diagram: https://gitdiagram.com/sanishpoudel/todo-list
- Repository: https://github.com/sanishpoudel/todo-list

## Overview

This is a small browser-based todo list for organizing projects and tracking dated tasks. Users create projects and tasks, then view tasks in project lists, Inbox, Today, or This Week; task rows also support completion and removal. The sampled source places these behaviors in one JavaScript file, so several nodes share its path. The excerpts show calls to a save helper but not its implementation or storage details; persistence is therefore represented only as an unverified integration.

Main entry points: [`src/index.js`](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js) (Task rows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["User interaction"]
  node_app["Todo interface<br/>[index.js]"]
end

subgraph group_tasks["Projects and tasks"]
  node_project_mgmt["Project management<br/>[index.js]"]
  node_task_model["Task records<br/>[index.js]"]
  node_task_rows["Task rows<br/>[index.js]"]
  node_local_storage[("Local storage")]
end

subgraph group_views["Task views"]
  node_project_view["Project lists<br/>[index.js]"]
  node_inbox_view["Inbox view<br/>[index.js]"]
  node_today_view["Today view<br/>[index.js]"]
  node_week_view["This Week view<br/>[index.js]"]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"creates projects"| node_project_mgmt
node_app -->|"creates tasks"| node_task_model
node_project_mgmt -.->|"saves changes"| node_local_storage
node_task_rows -.->|"saves changes"| node_local_storage
node_app -->|"selects project"| node_project_view
node_project_view -->|"renders tasks"| node_task_rows
node_inbox_view -->|"renders tasks"| node_task_rows
node_today_view -->|"renders tasks"| node_task_rows
node_week_view -->|"renders tasks"| node_task_rows

click node_app "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"
click node_project_mgmt "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"
click node_task_model "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"
click node_task_rows "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"
click node_project_view "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"
click node_inbox_view "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"
click node_today_view "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"
click node_week_view "https://github.com/sanishpoudel/todo-list/blob/main/src/index.js"

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_app,node_user toneBlue
class node_project_mgmt,node_task_model,node_task_rows,node_local_storage toneAmber
class node_project_view,node_inbox_view,node_today_view,node_week_view toneMint
```

## Components

### User interaction

- [Todo interface](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`

### Projects and tasks

- [Project management](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`
- [Task records](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`
- [Task rows](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`
- **Local storage**

### Task views

- [Project lists](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`
- [Inbox view](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`
- [Today view](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`
- [This Week view](https://github.com/sanishpoudel/todo-list/blob/main/src/index.js): `src/index.js`

### Other components

- **User**

## Connections

- User → Todo interface: uses (evidence: `README.md`)
- Todo interface → Project management: creates projects (evidence: `src/index.js`)
- Todo interface → Task records: creates tasks (evidence: `src/index.js`)
- Project management → Local storage: saves changes
- Task rows → Local storage: saves changes
- Todo interface → Project lists: selects project (evidence: `src/index.js`)
- Project lists → Task rows: renders tasks (evidence: `src/index.js`)
- Inbox view → Task rows: renders tasks (evidence: `src/index.js`)
- Today view → Task rows: renders tasks (evidence: `src/index.js`)
- This Week view → Task rows: renders tasks (evidence: `src/index.js`)
