# nursalimrozak/project-management architecture

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

- Interactive diagram: https://gitdiagram.com/nursalimrozak/project-management
- Repository: https://github.com/nursalimrozak/project-management

## Overview

This Laravel application is an internal project-and-financial management system for software houses and digital agencies. The main workflow is staff entering and managing a project, tracking its tasks and contractual changes, issuing milestone invoices, recording expenses or reimbursements, and monitoring warranty obligations and reports. A separate technical-asset vault protects infrastructure credentials, while account roles and permissions govern access. The README documents additional API and portfolio capabilities; their implementation was not sampled, so their precise runtime wiring is not asserted here.

Main entry points: [`routes/web.php`](https://github.com/nursalimrozak/project-management/blob/main/routes/web.php) (Web routes), [`config/database.php`](https://github.com/nursalimrozak/project-management/blob/main/config/database.php) (Application database), [`resources/views/layouts/app.blade.php`](https://github.com/nursalimrozak/project-management/blob/main/resources/views/layouts/app.blade.php) (Blade user interface), [`app/Http/Controllers/InvoiceController.php`](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/InvoiceController.php) (Invoices and tax)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and administration"]
  node_routing["Web routes<br/>[web.php]"]
  node_auth["Authentication<br/>[AuthController.php]"]
  node_access_control["Role and permission checks"]
  node_team["Team and roles<br/>[TeamController.php]"]
end

subgraph group_delivery["Project delivery"]
  node_projects["Project lifecycle"]
  node_tasks["Tasks and milestones<br/>[TaskController.php]"]
  node_changes["Change requests"]
  node_documents["Project documents"]
  node_portfolio["Portfolio showcase capability"]
end

subgraph group_finance["Financial operations"]
  node_invoices["Invoices and tax"]
  node_expenses["Expenses and claims"]
  node_bank["Company bank accounts"]
end

subgraph group_infrastructure["Infrastructure and warranty"]
  node_assets["Infrastructure assets"]
  node_vault["Credential vault security"]
  node_renewals["Renewals and warranties"]
  node_warranty["Warranty issues"]
end

subgraph group_insight["Reporting and presentation"]
  node_reports["Financial and tax reports"]
  node_dashboard["Operational dashboard"]
  node_views["Blade user interface<br/>[app.blade.php]"]
  node_api["Versioned API capability<br/>[web.php]"]
end

node_staff(("Staff users"))
node_clients(("Clients"))
node_web["Web request entry<br/>[index.php]"]
node_db[("Application database<br/>[database.php]")]
node_mail["Email delivery"]
node_telegram["Telegram alerts"]

node_staff -->|"sends requests"| node_web
node_clients -->|"views invoices"| node_web
node_web -->|"dispatches"| node_routing
node_routing -->|"routes authentication"| node_auth
node_routing -->|"routes project work"| node_projects
node_routing -->|"routes task work"| node_tasks
node_routing -->|"routes changes"| node_changes
node_routing -->|"routes documents"| node_documents
node_routing -->|"routes invoicing"| node_invoices
node_routing -->|"routes expenses"| node_expenses
node_routing -->|"routes infrastructure"| node_assets
node_routing -->|"routes renewals"| node_renewals
node_routing -->|"routes warranty"| node_warranty
node_routing -->|"routes reports"| node_reports
node_routing -->|"routes dashboard"| node_dashboard
node_routing -->|"routes team management"| node_team
node_auth -->|"reads and writes accounts"| node_db
node_access_control -->|"checks permissions"| node_db
node_team -->|"reads and writes team"| node_db
node_projects -->|"reads and writes projects"| node_db
node_tasks -->|"reads and writes tasks"| node_db
node_changes -->|"records requests"| node_db
node_documents -->|"records documents"| node_db
node_invoices -->|"records invoice payments"| node_db
node_invoices -->|"sends invoice notices"| node_mail
node_expenses -->|"records claims"| node_db
node_expenses -->|"sends claim notices"| node_mail
node_bank -->|"stores account details"| node_db
node_assets -->|"records assets"| node_db
node_assets -->|"uses vault protection"| node_vault
node_vault -->|"records vault audits"| node_db
node_vault -->|"sends access OTP"| node_mail
node_vault -->|"alerts failed attempts"| node_telegram
node_renewals -->|"records renewals"| node_db
node_warranty -->|"records warranty issues"| node_db
node_reports -->|"queries financial data"| node_db
node_dashboard -->|"queries operational data"| node_db
node_invoices -->|"renders invoice views"| node_views
node_tasks -->|"renders task views"| node_views
node_projects -->|"renders project views"| node_views
node_reports -->|"renders reports"| node_views
node_web -.->|"supports API capability"| node_api
node_portfolio -.->|"presents showcase"| node_views

click node_web "https://github.com/nursalimrozak/project-management/blob/main/public/index.php"
click node_routing "https://github.com/nursalimrozak/project-management/blob/main/routes/web.php"
click node_auth "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/AuthController.php"
click node_access_control "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Middleware/PermissionMiddleware.php"
click node_team "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/TeamController.php"
click node_projects "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ProjectController.php"
click node_tasks "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/TaskController.php"
click node_changes "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ChangeRequestController.php"
click node_documents "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ProjectDocumentController.php"
click node_invoices "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/InvoiceController.php"
click node_expenses "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ExpenseController.php"
click node_bank "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/CompanyBankAccountController.php"
click node_assets "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/InfrastructureAssetController.php"
click node_vault "https://github.com/nursalimrozak/project-management/blob/main/app/Services/InfrastructureVaultService.php"
click node_renewals "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/InfrastructureRenewalController.php"
click node_warranty "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/WarrantyIssueController.php"
click node_reports "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ReportController.php"
click node_dashboard "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/DashboardController.php"
click node_views "https://github.com/nursalimrozak/project-management/blob/main/resources/views/layouts/app.blade.php"
click node_db "https://github.com/nursalimrozak/project-management/blob/main/config/database.php"
click node_mail "https://github.com/nursalimrozak/project-management/blob/main/app/Services/DynamicMailConfig.php"
click node_telegram "https://github.com/nursalimrozak/project-management/blob/main/app/Services/TelegramService.php"
click node_api "https://github.com/nursalimrozak/project-management/blob/main/routes/web.php"
click node_portfolio "https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ProjectController.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_routing,node_auth,node_access_control,node_team,node_staff,node_clients toneBlue
class node_projects,node_tasks,node_changes,node_documents,node_portfolio,node_db toneAmber
class node_invoices,node_expenses,node_bank,node_web toneMint
class node_assets,node_vault,node_renewals,node_warranty toneRose
class node_reports,node_dashboard,node_views,node_api toneIndigo
class node_mail,node_telegram toneTeal
```

## Components

### Access and administration

- [Web routes](https://github.com/nursalimrozak/project-management/blob/main/routes/web.php): `routes/web.php`
- [Authentication](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/AuthController.php): `app/Http/Controllers/AuthController.php`
- [Role and permission checks](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Middleware/PermissionMiddleware.php): `app/Http/Middleware/PermissionMiddleware.php`
- [Team and roles](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/TeamController.php): `app/Http/Controllers/TeamController.php`

### Project delivery

- [Project lifecycle](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ProjectController.php): `app/Http/Controllers/ProjectController.php`
- [Tasks and milestones](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/TaskController.php): `app/Http/Controllers/TaskController.php`
- [Change requests](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ChangeRequestController.php): `app/Http/Controllers/ChangeRequestController.php`
- [Project documents](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ProjectDocumentController.php): `app/Http/Controllers/ProjectDocumentController.php`
- [Portfolio showcase capability](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ProjectController.php): `app/Http/Controllers/ProjectController.php`

### Financial operations

- [Invoices and tax](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/InvoiceController.php): `app/Http/Controllers/InvoiceController.php`
- [Expenses and claims](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ExpenseController.php): `app/Http/Controllers/ExpenseController.php`
- [Company bank accounts](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/CompanyBankAccountController.php): `app/Http/Controllers/CompanyBankAccountController.php`

### Infrastructure and warranty

- [Infrastructure assets](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/InfrastructureAssetController.php): `app/Http/Controllers/InfrastructureAssetController.php`
- [Credential vault security](https://github.com/nursalimrozak/project-management/blob/main/app/Services/InfrastructureVaultService.php): `app/Services/InfrastructureVaultService.php`
- [Renewals and warranties](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/InfrastructureRenewalController.php): `app/Http/Controllers/InfrastructureRenewalController.php`
- [Warranty issues](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/WarrantyIssueController.php): `app/Http/Controllers/WarrantyIssueController.php`

### Reporting and presentation

- [Financial and tax reports](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/ReportController.php): `app/Http/Controllers/ReportController.php`
- [Operational dashboard](https://github.com/nursalimrozak/project-management/blob/main/app/Http/Controllers/DashboardController.php): `app/Http/Controllers/DashboardController.php`
- [Blade user interface](https://github.com/nursalimrozak/project-management/blob/main/resources/views/layouts/app.blade.php): `resources/views/layouts/app.blade.php`
- [Versioned API capability](https://github.com/nursalimrozak/project-management/blob/main/routes/web.php): `routes/web.php`

### Other components

- **Staff users**
- **Clients**
- [Web request entry](https://github.com/nursalimrozak/project-management/blob/main/public/index.php): `public/index.php`
- [Application database](https://github.com/nursalimrozak/project-management/blob/main/config/database.php): `config/database.php`
- [Email delivery](https://github.com/nursalimrozak/project-management/blob/main/app/Services/DynamicMailConfig.php): `app/Services/DynamicMailConfig.php`
- [Telegram alerts](https://github.com/nursalimrozak/project-management/blob/main/app/Services/TelegramService.php): `app/Services/TelegramService.php`

## Connections

- Staff users → Web request entry: sends requests
- Clients → Web request entry: views invoices
- Web request entry → Web routes: dispatches
- Web routes → Authentication: routes authentication
- Web routes → Project lifecycle: routes project work
- Web routes → Tasks and milestones: routes task work
- Web routes → Change requests: routes changes
- Web routes → Project documents: routes documents
- Web routes → Invoices and tax: routes invoicing
- Web routes → Expenses and claims: routes expenses
- Web routes → Infrastructure assets: routes infrastructure
- Web routes → Renewals and warranties: routes renewals
- Web routes → Warranty issues: routes warranty
- Web routes → Financial and tax reports: routes reports
- Web routes → Operational dashboard: routes dashboard
- Web routes → Team and roles: routes team management
- Authentication → Application database: reads and writes accounts
- Role and permission checks → Application database: checks permissions
- Team and roles → Application database: reads and writes team
- Project lifecycle → Application database: reads and writes projects
- Tasks and milestones → Application database: reads and writes tasks
- Change requests → Application database: records requests
- Project documents → Application database: records documents
- Invoices and tax → Application database: records invoice payments
- Invoices and tax → Email delivery: sends invoice notices
- Expenses and claims → Application database: records claims
- Expenses and claims → Email delivery: sends claim notices
- Company bank accounts → Application database: stores account details
- Infrastructure assets → Application database: records assets
- Infrastructure assets → Credential vault security: uses vault protection
- Credential vault security → Application database: records vault audits
- Credential vault security → Email delivery: sends access OTP
- Credential vault security → Telegram alerts: alerts failed attempts
- Renewals and warranties → Application database: records renewals
- Warranty issues → Application database: records warranty issues
- Financial and tax reports → Application database: queries financial data
- Operational dashboard → Application database: queries operational data
- Invoices and tax → Blade user interface: renders invoice views
- Tasks and milestones → Blade user interface: renders task views
- Project lifecycle → Blade user interface: renders project views
- Financial and tax reports → Blade user interface: renders reports
- Web request entry → Versioned API capability: supports API capability
- Portfolio showcase capability → Blade user interface: presents showcase
