# manatsawinjunior/softwaremanagement architecture

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

- Interactive diagram: https://gitdiagram.com/manatsawinjunior/softwaremanagement
- Repository: https://github.com/manatsawinjunior/softwaremanagement

## Overview

ProjectFlow is an internal project-management web app for organizing software work. Users interact through the browser UI, which loads dashboard and management data from the FastAPI backend and sends changes to its APIs. The central work hierarchy is Project → Feature → Function → PBI, with PBIs assignable to Sprints; developer assignments and project roles are a separate management branch. Backend handlers use SQLAlchemy and SQLite, including generated IDs and parent-status roll-up. README documents these capabilities, but excerpts do not show every route or UI action, so uncertain call links are omitted.

Main entry points: [`app/main.py`](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py) (FastAPI routes), [`app/static/app.js`](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/app.js) (UI behavior), [`app/static/index.html`](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/index.html) (Management UI), [`app/static/styles.css`](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/styles.css) (Responsive styling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web interface"]
  node_ui["Management UI<br/>[index.html]"]
  node_client["UI behavior<br/>[app.js]"]
  node_styles["Responsive styling<br/>[styles.css]"]
end

subgraph group_backend["Application backend"]
  node_api["FastAPI routes<br/>[main.py]"]
  node_rollup["Status roll-up<br/>[main.py]"]
  node_ids["ID generation<br/>[main.py]"]
end

subgraph group_work["Work planning"]
  node_projects["Projects<br/>[main.py]"]
  node_features["Features<br/>[main.py]"]
  node_functions["Functions<br/>[main.py]"]
  node_pbis["Backlog items<br/>[main.py]"]
  node_sprints["Sprints<br/>[main.py]"]
end

subgraph group_people["People and teams"]
  node_developers["Developers<br/>[main.py]"]
  node_membership["Project roles<br/>[main.py]"]
end

subgraph group_persistence["Persistence"]
  node_orm["SQLAlchemy models<br/>[main.py]"]
  node_database[("SQLite database<br/>[projectflow.db]")]
end

node_user(("Project user"))
node_font(("Google Fonts"))

node_user -->|"uses"| node_ui
node_ui -->|"loads"| node_client
node_client -->|"HTTP requests"| node_api
node_api -->|"JSON responses"| node_client
node_client -->|"applies styles"| node_styles
node_client -->|"loads data"| node_api
node_api -->|"serves routes"| node_projects
node_api -->|"serves routes"| node_features
node_api -->|"serves routes"| node_functions
node_api -->|"serves routes"| node_pbis
node_api -->|"serves routes"| node_sprints
node_api -->|"serves routes"| node_developers
node_api -->|"serves routes"| node_membership
node_api -->|"generates codes"| node_ids
node_api -->|"refreshes statuses"| node_rollup
node_api -->|"queries and updates"| node_orm
node_orm -->|"reads and writes"| node_database
node_font -.->|"provides font"| node_styles

click node_ui "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/index.html"
click node_client "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/app.js"
click node_styles "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/styles.css"
click node_api "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_rollup "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_ids "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_projects "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_features "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_functions "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_pbis "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_sprints "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_developers "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_membership "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_orm "https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py"
click node_database "https://github.com/manatsawinjunior/softwaremanagement/blob/main/data/projectflow.db"

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_client,node_styles,node_user toneBlue
class node_api,node_rollup,node_ids toneAmber
class node_projects,node_features,node_functions,node_pbis,node_sprints toneMint
class node_developers,node_membership toneRose
class node_orm,node_database,node_font toneIndigo
```

## Components

### Web interface

- [Management UI](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/index.html): `app/static/index.html`
- [UI behavior](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/app.js): `app/static/app.js`
- [Responsive styling](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/static/styles.css): `app/static/styles.css`

### Application backend

- [FastAPI routes](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [Status roll-up](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [ID generation](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`

### Work planning

- [Projects](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [Features](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [Functions](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [Backlog items](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [Sprints](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`

### People and teams

- [Developers](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [Project roles](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`

### Persistence

- [SQLAlchemy models](https://github.com/manatsawinjunior/softwaremanagement/blob/main/app/main.py): `app/main.py`
- [SQLite database](https://github.com/manatsawinjunior/softwaremanagement/blob/main/data/projectflow.db): `data/projectflow.db`

### Other components

- **Project user**
- **Google Fonts**

## Connections

- Project user → Management UI: uses
- Management UI → UI behavior: loads
- UI behavior → FastAPI routes: HTTP requests
- FastAPI routes → UI behavior: JSON responses
- UI behavior → Responsive styling: applies styles
- UI behavior → FastAPI routes: loads data
- FastAPI routes → Projects: serves routes
- FastAPI routes → Features: serves routes
- FastAPI routes → Functions: serves routes
- FastAPI routes → Backlog items: serves routes
- FastAPI routes → Sprints: serves routes
- FastAPI routes → Developers: serves routes
- FastAPI routes → Project roles: serves routes
- FastAPI routes → ID generation: generates codes
- FastAPI routes → Status roll-up: refreshes statuses
- FastAPI routes → SQLAlchemy models: queries and updates
- SQLAlchemy models → SQLite database: reads and writes
- Google Fonts → Responsive styling: provides font
