# proinfoortoimagem/nahul-hub architecture

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

- Interactive diagram: https://gitdiagram.com/proinfoortoimagem/nahul-hub
- Repository: https://github.com/proinfoortoimagem/nahul-hub

## Overview

Nahul Hub is an internal-network administrative management system. Users work in the browser; the shared FastAPI application exposes domain modules for people, contracts, quality, supplies, and maintenance, with results and records maintained in SQLite and uploaded documents. The graph preserves README-documented capabilities even where route source was not sampled. Detailed wiring within unsampled modules is therefore omitted; module-to-store links reflect the documented SQLAlchemy/SQLite architecture and sampled database-backed routes.

Main entry points: [`backend/app/main.py`](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/main.py) (Web application), [`backend/app/database.py`](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/database.py) (SQLite database), [`backend/app/quality_routes.py`](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/quality_routes.py) (Quality processes), [`backend/app/contracts_routes.py`](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/contracts_routes.py) (Contracts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["People management"]
  node_hr["People management<br/>[hr_routes.py]"]
  node_leave["Leave workflows<br/>[leave_routes.py]"]
  node_peopleops["People operations"]
  node_employeeimport["Employee imports<br/>[employee_import.py]"]
end

subgraph group_governance["Governance"]
  node_contracts["Contracts"]
  node_quality["Quality processes<br/>[quality_routes.py]"]
  node_nc["Nonconformities"]
end

subgraph group_operations["Operational management"]
  node_supplies["Supplies and stock<br/>[supplies_routes.py]"]
  node_serviceorders["Service orders"]
  node_imports["Spreadsheet imports<br/>[material_import.py]"]
end

subgraph group_platform["Application platform"]
  node_ui["Main interface<br/>[app.js]"]
  node_ordersui["Service-order interface<br/>[service-orders.js]"]
  node_app["Web application<br/>[main.py]"]
  node_auth["Authentication and access<br/>[auth_routes.py]"]
  node_security["Security and permissions<br/>[security.py]"]
  node_audit["Audit history<br/>[audit.py]"]
  node_files["Document storage<br/>[file_storage.py]"]
  node_reports["PDF reports<br/>[pdf_reports.py]"]
  node_db[("SQLite database<br/>[database.py]")]
  node_uploads[("Uploaded files<br/>[config.py]")]
end

node_users(("Employees and leaders"))
node_browser(("Web browser"))

node_users -->|"use"| node_browser
node_browser -->|"loads interface"| node_ui
node_browser -->|"opens orders"| node_ordersui
node_ui -->|"API requests"| node_app
node_ordersui -->|"API requests"| node_app
node_app -->|"dispatches auth"| node_auth
node_auth -->|"checks access"| node_security
node_app -->|"dispatches"| node_hr
node_app -->|"dispatches"| node_leave
node_app -->|"dispatches"| node_peopleops
node_app -->|"dispatches"| node_contracts
node_app -->|"dispatches"| node_quality
node_app -->|"dispatches"| node_nc
node_app -->|"dispatches"| node_supplies
node_app -->|"dispatches"| node_serviceorders
node_hr -->|"reads and writes"| node_db
node_leave -->|"reads and writes"| node_db
node_peopleops -->|"reads and writes"| node_db
node_contracts -->|"reads and writes"| node_db
node_quality -->|"reads and writes"| node_db
node_nc -->|"reads and writes"| node_db
node_supplies -->|"reads and writes"| node_db
node_serviceorders -->|"reads and writes"| node_db
node_employeeimport -->|"imports records"| node_hr
node_imports -->|"imports materials"| node_supplies
node_hr -->|"records changes"| node_audit
node_contracts -->|"records changes"| node_audit
node_quality -->|"records changes"| node_audit
node_leave -->|"stores documents"| node_uploads
node_contracts -->|"stores documents"| node_uploads
node_quality -->|"stores documents"| node_uploads
node_files -->|"writes files"| node_uploads
node_quality -->|"generates PDFs"| node_reports
node_peopleops -->|"generates PDFs"| node_reports
node_serviceorders -->|"links assets"| node_supplies

click node_ui "https://github.com/proinfoortoimagem/nahul-hub/blob/main/frontend/assets/app.js"
click node_ordersui "https://github.com/proinfoortoimagem/nahul-hub/blob/main/frontend/assets/service-orders.js"
click node_app "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/main.py"
click node_auth "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/auth_routes.py"
click node_security "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/security.py"
click node_hr "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/hr_routes.py"
click node_leave "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/leave_routes.py"
click node_peopleops "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/operations_routes.py"
click node_contracts "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/contracts_routes.py"
click node_quality "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/quality_routes.py"
click node_nc "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/nonconformity_routes.py"
click node_supplies "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/supplies_routes.py"
click node_serviceorders "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/service_orders_routes.py"
click node_imports "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/material_import.py"
click node_employeeimport "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/employee_import.py"
click node_audit "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/audit.py"
click node_files "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/file_storage.py"
click node_reports "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/pdf_reports.py"
click node_db "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/database.py"
click node_uploads "https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/config.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_hr,node_leave,node_peopleops,node_employeeimport,node_browser toneBlue
class node_contracts,node_quality,node_nc toneAmber
class node_supplies,node_serviceorders,node_imports toneMint
class node_ui,node_ordersui,node_app,node_auth,node_security,node_audit,node_files,node_reports,node_db,node_uploads toneRose
class node_users toneIndigo
```

## Components

### People management

- [People management](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/hr_routes.py): `backend/app/hr_routes.py`
- [Leave workflows](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/leave_routes.py): `backend/app/leave_routes.py`
- [People operations](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/operations_routes.py): `backend/app/operations_routes.py`
- [Employee imports](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/employee_import.py): `backend/app/employee_import.py`

### Governance

- [Contracts](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/contracts_routes.py): `backend/app/contracts_routes.py`
- [Quality processes](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/quality_routes.py): `backend/app/quality_routes.py`
- [Nonconformities](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/nonconformity_routes.py): `backend/app/nonconformity_routes.py`

### Operational management

- [Supplies and stock](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/supplies_routes.py): `backend/app/supplies_routes.py`
- [Service orders](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/service_orders_routes.py): `backend/app/service_orders_routes.py`
- [Spreadsheet imports](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/material_import.py): `backend/app/material_import.py`

### Application platform

- [Main interface](https://github.com/proinfoortoimagem/nahul-hub/blob/main/frontend/assets/app.js): `frontend/assets/app.js`
- [Service-order interface](https://github.com/proinfoortoimagem/nahul-hub/blob/main/frontend/assets/service-orders.js): `frontend/assets/service-orders.js`
- [Web application](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/main.py): `backend/app/main.py`
- [Authentication and access](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/auth_routes.py): `backend/app/auth_routes.py`
- [Security and permissions](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/security.py): `backend/app/security.py`
- [Audit history](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/audit.py): `backend/app/audit.py`
- [Document storage](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/file_storage.py): `backend/app/file_storage.py`
- [PDF reports](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/pdf_reports.py): `backend/app/pdf_reports.py`
- [SQLite database](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/database.py): `backend/app/database.py`
- [Uploaded files](https://github.com/proinfoortoimagem/nahul-hub/blob/main/backend/app/config.py): `backend/app/config.py`

### Other components

- **Employees and leaders**
- **Web browser**

## Connections

- Employees and leaders → Web browser: use
- Web browser → Main interface: loads interface
- Web browser → Service-order interface: opens orders
- Main interface → Web application: API requests
- Service-order interface → Web application: API requests
- Web application → Authentication and access: dispatches auth
- Authentication and access → Security and permissions: checks access
- Web application → People management: dispatches
- Web application → Leave workflows: dispatches
- Web application → People operations: dispatches
- Web application → Contracts: dispatches
- Web application → Quality processes: dispatches
- Web application → Nonconformities: dispatches
- Web application → Supplies and stock: dispatches
- Web application → Service orders: dispatches
- People management → SQLite database: reads and writes
- Leave workflows → SQLite database: reads and writes
- People operations → SQLite database: reads and writes
- Contracts → SQLite database: reads and writes
- Quality processes → SQLite database: reads and writes
- Nonconformities → SQLite database: reads and writes
- Supplies and stock → SQLite database: reads and writes
- Service orders → SQLite database: reads and writes
- Employee imports → People management: imports records
- Spreadsheet imports → Supplies and stock: imports materials
- People management → Audit history: records changes
- Contracts → Audit history: records changes
- Quality processes → Audit history: records changes
- Leave workflows → Uploaded files: stores documents
- Contracts → Uploaded files: stores documents
- Quality processes → Uploaded files: stores documents
- Document storage → Uploaded files: writes files
- Quality processes → PDF reports: generates PDFs
- People operations → PDF reports: generates PDFs
- Service orders → Supplies and stock: links assets
