# emae599/todoapp architecture

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

## Overview

This is a small Laravel todo app: users work with tasks whose statuses are To Do, In Progress, or Done. The server exposes task listing and CRUD operations through a controller, while a Blade page supplies the board UI and loads browser scripts. The request path through Laravel routing is supported by the front controller, bootstrap configuration, and route reference. Task persistence is implied by Eloquent but the migration and database wiring were not excerpted, so that connection is marked unverified; the README is empty.

Main entry points: [`todoapp/public/index.php`](https://github.com/emae599/todoapp/blob/main/todoapp/public/index.php) (HTTP entry), [`todoapp/bootstrap/app.php`](https://github.com/emae599/todoapp/blob/main/todoapp/bootstrap/app.php) (Laravel bootstrap), [`todoapp/routes/web.php`](https://github.com/emae599/todoapp/blob/main/todoapp/routes/web.php) (Web routes), [`todoapp/app/Http/Controllers/TaskController.php`](https://github.com/emae599/todoapp/blob/main/todoapp/app/Http/Controllers/TaskController.php) (Task API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_request["Request handling"]
  node_http["HTTP entry<br/>[index.php]"]
  node_laravel["Laravel bootstrap<br/>[app.php]"]
  node_web_routes["Web routes<br/>[web.php]"]
end

subgraph group_tasks["Task domain"]
  node_task_controller["Task API<br/>[TaskController.php]"]
  node_task_model["Task model<br/>[Task.php]"]
  node_task_table[("Tasks table")]
end

subgraph group_ui["Web interface"]
  node_task_board["Task board page<br/>[app.blade.php]"]
  node_browser_script["Browser behavior<br/>[script.js]"]
end

subgraph group_identity["User identity"]
  node_user_model["User model<br/>[User.php]"]
  node_auth_config["Auth configuration<br/>[auth.php]"]
  node_seeder["User seeder<br/>[DatabaseSeeder.php]"]
end

node_visitor(("Visitor"))

node_visitor -->|"sends request"| node_http
node_http -->|"bootstraps"| node_laravel
node_laravel -->|"loads routes"| node_web_routes
node_web_routes -->|"routes to"| node_task_controller
node_task_controller -->|"queries"| node_task_model
node_task_model -.->|"uses table"| node_task_table
node_task_board -->|"loads script"| node_browser_script
node_auth_config -->|"uses model"| node_user_model
node_seeder -->|"creates user"| node_user_model

click node_http "https://github.com/emae599/todoapp/blob/main/todoapp/public/index.php"
click node_laravel "https://github.com/emae599/todoapp/blob/main/todoapp/bootstrap/app.php"
click node_web_routes "https://github.com/emae599/todoapp/blob/main/todoapp/routes/web.php"
click node_task_controller "https://github.com/emae599/todoapp/blob/main/todoapp/app/Http/Controllers/TaskController.php"
click node_task_model "https://github.com/emae599/todoapp/blob/main/todoapp/app/Models/Task.php"
click node_task_table "https://github.com/emae599/todoapp/blob/main/todoapp/database/migrations/2025_10_01_125912_create_tasks_table.php"
click node_task_board "https://github.com/emae599/todoapp/blob/main/todoapp/resources/views/app.blade.php"
click node_browser_script "https://github.com/emae599/todoapp/blob/main/todoapp/public/script.js"
click node_user_model "https://github.com/emae599/todoapp/blob/main/todoapp/app/Models/User.php"
click node_auth_config "https://github.com/emae599/todoapp/blob/main/todoapp/config/auth.php"
click node_seeder "https://github.com/emae599/todoapp/blob/main/todoapp/database/seeders/DatabaseSeeder.php"

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_http,node_laravel,node_web_routes toneBlue
class node_task_controller,node_task_model,node_task_table toneAmber
class node_task_board,node_browser_script toneMint
class node_user_model,node_auth_config,node_seeder toneRose
class node_visitor toneIndigo
```

## Components

### Request handling

- [HTTP entry](https://github.com/emae599/todoapp/blob/main/todoapp/public/index.php): `todoapp/public/index.php`
- [Laravel bootstrap](https://github.com/emae599/todoapp/blob/main/todoapp/bootstrap/app.php): `todoapp/bootstrap/app.php`
- [Web routes](https://github.com/emae599/todoapp/blob/main/todoapp/routes/web.php): `todoapp/routes/web.php`

### Task domain

- [Task API](https://github.com/emae599/todoapp/blob/main/todoapp/app/Http/Controllers/TaskController.php): `todoapp/app/Http/Controllers/TaskController.php`
- [Task model](https://github.com/emae599/todoapp/blob/main/todoapp/app/Models/Task.php): `todoapp/app/Models/Task.php`
- [Tasks table](https://github.com/emae599/todoapp/blob/main/todoapp/database/migrations/2025_10_01_125912_create_tasks_table.php): `todoapp/database/migrations/2025_10_01_125912_create_tasks_table.php`

### Web interface

- [Task board page](https://github.com/emae599/todoapp/blob/main/todoapp/resources/views/app.blade.php): `todoapp/resources/views/app.blade.php`
- [Browser behavior](https://github.com/emae599/todoapp/blob/main/todoapp/public/script.js): `todoapp/public/script.js`

### User identity

- [User model](https://github.com/emae599/todoapp/blob/main/todoapp/app/Models/User.php): `todoapp/app/Models/User.php`
- [Auth configuration](https://github.com/emae599/todoapp/blob/main/todoapp/config/auth.php): `todoapp/config/auth.php`
- [User seeder](https://github.com/emae599/todoapp/blob/main/todoapp/database/seeders/DatabaseSeeder.php): `todoapp/database/seeders/DatabaseSeeder.php`

### Other components

- **Visitor**

## Connections

- Visitor → HTTP entry: sends request (evidence: `todoapp/public/index.php`)
- HTTP entry → Laravel bootstrap: bootstraps (evidence: `todoapp/public/index.php`)
- Laravel bootstrap → Web routes: loads routes (evidence: `todoapp/bootstrap/app.php`)
- Web routes → Task API: routes to (evidence: `todoapp/routes/web.php`)
- Task API → Task model: queries (evidence: `todoapp/app/Http/Controllers/TaskController.php`)
- Task model → Tasks table: uses table
- Task board page → Browser behavior: loads script (evidence: `todoapp/resources/views/app.blade.php`)
- Auth configuration → User model: uses model (evidence: `todoapp/config/auth.php`)
- User seeder → User model: creates user (evidence: `todoapp/database/seeders/DatabaseSeeder.php`)
