# dendennnnn/csit340-todomvc architecture

> Architecture diagram of the GitHub repository dendennnnn/csit340-todomvc, 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/dendennnnn/csit340-todomvc
- Repository: https://github.com/dendennnnn/csit340-todomvc

## Overview

This is a small, client-side TodoMVC app. The user adds, toggles, deletes, filters, or clears todos through the Todos component; React state drives the displayed list and remaining-items count. The entry point mounts the app, whose shell renders the todo experience and attribution footer. The README documents the user-facing capabilities; the sampled source shows they are implemented together in Todos.jsx. No persistence or external services are shown.

Main entry points: [`src/App.jsx`](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/App.jsx) (App shell), [`src/components/Todos.jsx`](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/components/Todos.jsx) (Todo interactions), [`src/main.jsx`](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/main.jsx) (React entry), [`src/components/Info.jsx`](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/components/Info.jsx) (Attribution footer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["App shell"]
  node_entry["React entry<br/>[main.jsx]"]
  node_app["App shell<br/>[App.jsx]"]
  node_info["Attribution footer<br/>[Info.jsx]"]
end

subgraph group_todo["Todo experience"]
  node_todos["Todo interactions<br/>[Todos.jsx]"]
end

node_user(("User"))

node_entry -->|"mounts"| node_app
node_app -->|"renders"| node_todos
node_app -->|"renders"| node_info
node_user -->|"manages todos"| node_todos
node_todos -->|"displays results"| node_user

click node_entry "https://github.com/dendennnnn/csit340-todomvc/blob/main/src/main.jsx"
click node_app "https://github.com/dendennnnn/csit340-todomvc/blob/main/src/App.jsx"
click node_info "https://github.com/dendennnnn/csit340-todomvc/blob/main/src/components/Info.jsx"
click node_todos "https://github.com/dendennnnn/csit340-todomvc/blob/main/src/components/Todos.jsx"

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_entry,node_app,node_info,node_user toneBlue
class node_todos toneAmber
```

## Components

### App shell

- [React entry](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/main.jsx): `src/main.jsx`
- [App shell](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/App.jsx): `src/App.jsx`
- [Attribution footer](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/components/Info.jsx): `src/components/Info.jsx`

### Todo experience

- [Todo interactions](https://github.com/dendennnnn/csit340-todomvc/blob/main/src/components/Todos.jsx): `src/components/Todos.jsx`

### Other components

- **User**

## Connections

- React entry → App shell: mounts (evidence: `src/main.jsx`)
- App shell → Todo interactions: renders (evidence: `src/App.jsx`)
- App shell → Attribution footer: renders (evidence: `src/App.jsx`)
- User → Todo interactions: manages todos (evidence: `src/components/Todos.jsx`)
- Todo interactions → User: displays results (evidence: `src/components/Todos.jsx`)
