# mwahidcodes/taskpipeline architecture

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

- Interactive diagram: https://gitdiagram.com/mwahidcodes/taskpipeline
- Repository: https://github.com/mwahidcodes/taskpipeline

## Overview

TaskPipeline is a task-tracking web app: users register or log in, then create, view, advance, and delete their own tasks on a status-column dashboard. The backend authenticates task requests and persists account and task data in PostgreSQL; it also exposes Prometheus metrics. The README provides only the product name, so capabilities and connections here rely on the sampled source and file tree. Registration UI exists in the tree, but its implementation was not sampled.

Main entry points: [`backend/server.js`](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/server.js) (HTTP server), [`frontend/src/App.jsx`](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/App.jsx) (Page selection), [`frontend/src/pages/Login.jsx`](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Login.jsx) (Login form), [`frontend/src/pages/Dashboard.jsx`](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Dashboard.jsx) (Task board)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web application"]
  node_app["Page selection<br/>[App.jsx]"]
  node_login["Login form<br/>[Login.jsx]"]
  node_register["Registration form<br/>[Register.jsx]"]
  node_dashboard["Task board<br/>[Dashboard.jsx]"]
  node_api_config["Backend URL<br/>[config.js]"]
end

subgraph group_api["Backend API"]
  node_server["HTTP server<br/>[server.js]"]
  node_auth_routes["Auth routes<br/>[authRoutes.js]"]
  node_task_routes["Task routes<br/>[taskRoutes.js]"]
  node_auth_middleware["JWT authorization<br/>[authMiddleware.js]"]
  node_auth_controller["Account operations<br/>[authController.js]"]
  node_task_controller["Task operations<br/>[taskController.js]"]
end

subgraph group_data["Persistence"]
  node_db_config["Database pool<br/>[db.js]"]
  node_postgres[("PostgreSQL<br/>[schema.sql]")]
end

subgraph group_observability["Monitoring"]
end

node_user(("User"))
node_prometheus(("Prometheus scraper"))

node_user -->|"uses"| node_app
node_app -->|"selects"| node_login
node_app -->|"selects"| node_register
node_app -->|"opens"| node_dashboard
node_login -->|"gets URL"| node_api_config
node_dashboard -->|"gets URL"| node_api_config
node_login -->|"submits login"| node_server
node_dashboard -->|"requests tasks"| node_server
node_server -->|"dispatches"| node_auth_routes
node_server -->|"dispatches"| node_task_routes
node_auth_routes -->|"dispatches"| node_auth_controller
node_task_routes -->|"checks token"| node_auth_middleware
node_auth_middleware -->|"continues"| node_task_controller
node_auth_controller -->|"queries"| node_db_config
node_task_controller -->|"queries"| node_db_config
node_db_config -->|"reads/writes"| node_postgres
node_prometheus -.->|"scrapes metrics"| node_server

click node_app "https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/App.jsx"
click node_login "https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Login.jsx"
click node_register "https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Register.jsx"
click node_dashboard "https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Dashboard.jsx"
click node_api_config "https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/config.js"
click node_server "https://github.com/mwahidcodes/taskpipeline/blob/main/backend/server.js"
click node_auth_routes "https://github.com/mwahidcodes/taskpipeline/blob/main/backend/routes/authRoutes.js"
click node_task_routes "https://github.com/mwahidcodes/taskpipeline/blob/main/backend/routes/taskRoutes.js"
click node_auth_middleware "https://github.com/mwahidcodes/taskpipeline/blob/main/backend/middleware/authMiddleware.js"
click node_auth_controller "https://github.com/mwahidcodes/taskpipeline/blob/main/backend/controllers/authController.js"
click node_task_controller "https://github.com/mwahidcodes/taskpipeline/blob/main/backend/controllers/taskController.js"
click node_db_config "https://github.com/mwahidcodes/taskpipeline/blob/main/backend/config/db.js"
click node_postgres "https://github.com/mwahidcodes/taskpipeline/blob/main/database/schema.sql"

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_login,node_register,node_dashboard,node_api_config,node_user toneBlue
class node_server,node_auth_routes,node_task_routes,node_auth_middleware,node_auth_controller,node_task_controller toneAmber
class node_db_config,node_postgres toneMint
class node_prometheus toneIndigo
```

## Components

### Web application

- [Page selection](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Login form](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Login.jsx): `frontend/src/pages/Login.jsx`
- [Registration form](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Register.jsx): `frontend/src/pages/Register.jsx`
- [Task board](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/pages/Dashboard.jsx): `frontend/src/pages/Dashboard.jsx`
- [Backend URL](https://github.com/mwahidcodes/taskpipeline/blob/main/frontend/src/config.js): `frontend/src/config.js`

### Backend API

- [HTTP server](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/server.js): `backend/server.js`
- [Auth routes](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/routes/authRoutes.js): `backend/routes/authRoutes.js`
- [Task routes](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/routes/taskRoutes.js): `backend/routes/taskRoutes.js`
- [JWT authorization](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/middleware/authMiddleware.js): `backend/middleware/authMiddleware.js`
- [Account operations](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/controllers/authController.js): `backend/controllers/authController.js`
- [Task operations](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/controllers/taskController.js): `backend/controllers/taskController.js`

### Persistence

- [Database pool](https://github.com/mwahidcodes/taskpipeline/blob/main/backend/config/db.js): `backend/config/db.js`
- [PostgreSQL](https://github.com/mwahidcodes/taskpipeline/blob/main/database/schema.sql): `database/schema.sql`

### Other components

- **User**
- **Prometheus scraper**

## Connections

- User → Page selection: uses
- Page selection → Login form: selects
- Page selection → Registration form: selects
- Page selection → Task board: opens
- Login form → Backend URL: gets URL
- Task board → Backend URL: gets URL
- Login form → HTTP server: submits login
- Task board → HTTP server: requests tasks
- HTTP server → Auth routes: dispatches
- HTTP server → Task routes: dispatches
- Auth routes → Account operations: dispatches
- Task routes → JWT authorization: checks token
- JWT authorization → Task operations: continues
- Account operations → Database pool: queries
- Task operations → Database pool: queries
- Database pool → PostgreSQL: reads/writes
- Prometheus scraper → HTTP server: scrapes metrics
