# mugdha-sarker81/to-do-list-app-in-c architecture

> Architecture diagram of the GitHub repository mugdha-sarker81/to-do-list-app-in-c, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mugdha-sarker81/to-do-list-app-in-c
- Repository: https://github.com/mugdha-sarker81/to-do-list-app-in-c

## Overview

Task Manager is a console application for creating tasks, viewing pending work, searching by date, marking tasks done, and deleting tasks. Its main workflow loads tasks from a text file, presents a dashboard, and persists changes made through task operations. Date search leads to a date-specific view and customization menu. The implementation is contained in one C file. Daily-habit functions are only declared, so they are not shown as working features.

Main entry points: [`To-Do .c`](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c) (Dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Console interface"]
  node_main["Application entry<br/>[To-Do .c]"]
  node_dashboard["Dashboard<br/>[To-Do .c]"]
  node_date_menu["Date options<br/>[To-Do .c]"]
end

subgraph group_tasks["Task operations"]
  node_add["Add task<br/>[To-Do .c]"]
  node_pending["View pending<br/>[To-Do .c]"]
  node_search["Search by date<br/>[To-Do .c]"]
  node_complete["Complete task<br/>[To-Do .c]"]
  node_delete["Delete task<br/>[To-Do .c]"]
  node_date_validation["Date validation<br/>[To-Do .c]"]
end

subgraph group_state["Task state and storage"]
  node_task_state["In-memory tasks<br/>[To-Do .c]"]
  node_task_file[("tasks.txt")]
end

node_user(("Console user"))

node_user -->|"chooses actions"| node_dashboard
node_main -->|"loads tasks"| node_task_file
node_main -->|"starts"| node_dashboard
node_dashboard -->|"shows menu"| node_user
node_dashboard -->|"dispatches"| node_add
node_dashboard -->|"dispatches"| node_pending
node_dashboard -->|"dispatches"| node_search
node_dashboard -->|"dispatches"| node_complete
node_dashboard -->|"dispatches"| node_delete
node_add -->|"validates date"| node_date_validation
node_add -->|"adds task"| node_task_state
node_pending -->|"reads tasks"| node_task_state
node_search -->|"validates date"| node_date_validation
node_search -->|"filters tasks"| node_task_state
node_search -->|"opens options"| node_date_menu
node_date_menu -->|"dispatches"| node_add
node_date_menu -->|"dispatches"| node_complete
node_date_menu -->|"dispatches"| node_delete
node_date_menu -->|"returns to"| node_dashboard
node_complete -->|"updates status"| node_task_state
node_delete -->|"removes task"| node_task_state
node_add -->|"saves tasks"| node_task_file
node_complete -->|"saves tasks"| node_task_file
node_delete -->|"saves tasks"| node_task_file

click node_main "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_dashboard "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_date_menu "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_add "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_pending "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_search "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_complete "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_delete "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_date_validation "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"
click node_task_state "https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c"

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_main,node_dashboard,node_date_menu,node_user toneBlue
class node_add,node_pending,node_search,node_complete,node_delete,node_date_validation toneAmber
class node_task_state,node_task_file toneMint
```

## Components

### Console interface

- [Application entry](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- [Dashboard](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- [Date options](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`

### Task operations

- [Add task](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- [View pending](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- [Search by date](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- [Complete task](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- [Delete task](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- [Date validation](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`

### Task state and storage

- [In-memory tasks](https://github.com/mugdha-sarker81/to-do-list-app-in-c/blob/main/To-Do%20.c): `To-Do .c`
- **tasks.txt**

### Other components

- **Console user**

## Connections

- Console user → Dashboard: chooses actions
- Application entry → tasks.txt: loads tasks
- Application entry → Dashboard: starts
- Dashboard → Console user: shows menu
- Dashboard → Add task: dispatches
- Dashboard → View pending: dispatches
- Dashboard → Search by date: dispatches
- Dashboard → Complete task: dispatches
- Dashboard → Delete task: dispatches
- Add task → Date validation: validates date
- Add task → In-memory tasks: adds task
- View pending → In-memory tasks: reads tasks
- Search by date → Date validation: validates date
- Search by date → In-memory tasks: filters tasks
- Search by date → Date options: opens options
- Date options → Add task: dispatches
- Date options → Complete task: dispatches
- Date options → Delete task: dispatches
- Date options → Dashboard: returns to
- Complete task → In-memory tasks: updates status
- Delete task → In-memory tasks: removes task
- Add task → tasks.txt: saves tasks
- Complete task → tasks.txt: saves tasks
- Delete task → tasks.txt: saves tasks
