# nickolasnolte1/to-do-list-project architecture

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

- Interactive diagram: https://gitdiagram.com/nickolasnolte1/to-do-list-project
- Repository: https://github.com/nickolasnolte1/to-do-list-project

## Overview

This is a small serverless to-do app: users add, list, and delete tasks through a static HTML interface, an HTTP API, and a Python Lambda backend backed by DynamoDB. The backend’s method dispatcher selects an operation handler; those handlers access the table and format JSON responses. The README describes S3 static hosting and API Gateway setup. The frontend source was not excerpted, so its detailed request behavior is not shown.

Main entry points: [`ToDoApp/backend/app.py`](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py) (Method dispatcher), [`ToDoApp/frontend/index.html`](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/frontend/index.html) (To-do interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Frontend"]
  node_ui["To-do interface<br/>[index.html]"]
end

subgraph group_backend["Backend"]
  node_dispatch["Method dispatcher<br/>[app.py]"]
  node_list["List tasks<br/>[app.py]"]
  node_add["Add task<br/>[app.py]"]
  node_delete["Delete task<br/>[app.py]"]
  node_format["JSON response<br/>[app.py]"]
end

subgraph group_aws["AWS Services"]
  node_s3["Static site hosting"]
  node_api["HTTP API"]
  node_lambda["Lambda runtime"]
  node_ddb[("Task table")]
end

node_user(("User"))

node_user -->|"uses"| node_ui
node_s3 -->|"hosts"| node_ui
node_ui -->|"sends requests"| node_api
node_api -->|"invokes"| node_lambda
node_lambda -->|"runs"| node_dispatch
node_dispatch -->|"dispatches GET"| node_list
node_dispatch -->|"dispatches POST"| node_add
node_dispatch -->|"dispatches DELETE"| node_delete
node_list -->|"scans"| node_ddb
node_add -->|"writes item"| node_ddb
node_delete -->|"deletes item"| node_ddb
node_list -->|"formats result"| node_format
node_add -->|"formats result"| node_format
node_delete -->|"formats result"| node_format

click node_ui "https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/frontend/index.html"
click node_dispatch "https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py"
click node_list "https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py"
click node_add "https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py"
click node_delete "https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py"
click node_format "https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.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_ui,node_user toneBlue
class node_dispatch,node_list,node_add,node_delete,node_format toneAmber
class node_s3,node_api,node_lambda,node_ddb toneMint
```

## Components

### Frontend

- [To-do interface](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/frontend/index.html): `ToDoApp/frontend/index.html`

### Backend

- [Method dispatcher](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py): `ToDoApp/backend/app.py`
- [List tasks](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py): `ToDoApp/backend/app.py`
- [Add task](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py): `ToDoApp/backend/app.py`
- [Delete task](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py): `ToDoApp/backend/app.py`
- [JSON response](https://github.com/nickolasnolte1/to-do-list-project/blob/main/ToDoApp/backend/app.py): `ToDoApp/backend/app.py`

### AWS Services

- **Static site hosting**
- **HTTP API**
- **Lambda runtime**
- **Task table**

### Other components

- **User**

## Connections

- User → To-do interface: uses (evidence: `README.md`)
- Static site hosting → To-do interface: hosts (evidence: `README.md`)
- To-do interface → HTTP API: sends requests (evidence: `README.md`)
- HTTP API → Lambda runtime: invokes (evidence: `README.md`)
- Lambda runtime → Method dispatcher: runs (evidence: `README.md`)
- Method dispatcher → List tasks: dispatches GET (evidence: `ToDoApp/backend/app.py`)
- Method dispatcher → Add task: dispatches POST (evidence: `ToDoApp/backend/app.py`)
- Method dispatcher → Delete task: dispatches DELETE (evidence: `ToDoApp/backend/app.py`)
- List tasks → Task table: scans (evidence: `ToDoApp/backend/app.py`)
- Add task → Task table: writes item (evidence: `ToDoApp/backend/app.py`)
- Delete task → Task table: deletes item (evidence: `ToDoApp/backend/app.py`)
- List tasks → JSON response: formats result (evidence: `ToDoApp/backend/app.py`)
- Add task → JSON response: formats result (evidence: `ToDoApp/backend/app.py`)
- Delete task → JSON response: formats result (evidence: `ToDoApp/backend/app.py`)
