# protogulix/tunnel-gmao architecture

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

- Interactive diagram: https://gitdiagram.com/protogulix/tunnel-gmao
- Repository: https://github.com/protogulix/tunnel-gmao

## Overview

Tunnel GMAO is a browser-based maintenance-management application for industrial SMEs. Its core workflow is reporting and qualifying an intervention request, converting accepted requests into interventions, and recording field work as actions tied to equipment and parts. The interface also covers planning, preventive maintenance, purchasing, inventory, and operational views. The graph follows the visible route and API organization plus README-documented domain rules; unsampled modules are represented by their tree paths, without assuming internal call wiring.

Main entry points: [`src/router/routes.jsx`](https://github.com/protogulix/tunnel-gmao/blob/main/src/router/routes.jsx) (Routes), [`src/pages/intervention-requests/InterventionRequestsPage.jsx`](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/intervention-requests/InterventionRequestsPage.jsx) (Intervention requests), [`src/pages/interventions/InterventionDetailPage.jsx`](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/interventions/InterventionDetailPage.jsx) (Intervention execution), [`src/hooks/useBriefingData.js`](https://github.com/protogulix/tunnel-gmao/blob/main/src/hooks/useBriefingData.js) (Briefing data hook)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry and access"]
  node_routes["Routes<br/>[routes.jsx]"]
  node_login["Login<br/>[Login.jsx]"]
  node_layout["Application layout<br/>[Layout.jsx]"]
  node_auth["Authentication context<br/>[AuthContext.jsx]"]
end

subgraph group_maintenance["Maintenance workflow"]
  node_requests["Intervention requests"]
  node_interventions["Interventions"]
  node_intervention_detail["Intervention execution"]
  node_actions["Action forms<br/>[index.jsx]"]
  node_equipment["Equipment records"]
  node_tasks["Task workspace<br/>[useTasks.js]"]
end

subgraph group_resources["Resources and purchasing"]
  node_stock["Stock and parts<br/>[StockPage.jsx]"]
  node_suppliers["Suppliers<br/>[SuppliersPage.jsx]"]
  node_purchasing["Purchasing"]
end

subgraph group_operations["Planning and oversight"]
  node_preventive["Preventive maintenance<br/>[PreventivePage.jsx]"]
  node_planning["Planning"]
  node_briefing["Maintenance briefing<br/>[BriefingPage.jsx]"]
  node_home_data["Briefing data hook<br/>[useBriefingData.js]"]
  node_service_status["Service status<br/>[useServiceData.js]"]
  node_quality["Quality data"]
  node_admin["Administration<br/>[AdminPage.jsx]"]
end

subgraph group_data["API access"]
  node_request_api["Request API"]
  node_intervention_api["Intervention API<br/>[interventions.js]"]
  node_task_api["Task API<br/>[tasks.js]"]
end

node_user(("Technician / staff"))
node_backend[("Application backend")]

node_user -->|"opens app"| node_routes
node_routes -->|"routes to"| node_login
node_routes -->|"wraps pages"| node_layout
node_layout -->|"uses auth state"| node_auth
node_user -->|"reports need"| node_requests
node_requests -->|"submits request"| node_request_api
node_requests -->|"accepted request leads to"| node_interventions
node_interventions -->|"opens work record"| node_intervention_detail
node_intervention_detail -->|"records field work"| node_actions
node_intervention_detail -->|"organizes work"| node_tasks
node_tasks -->|"loads and updates"| node_task_api
node_home_data -->|"fetches interventions"| node_intervention_api
node_home_data -->|"fetches requests"| node_request_api
node_user -->|"manages machines"| node_equipment
node_user -->|"manages parts"| node_stock
node_user -->|"tracks purchases"| node_purchasing
node_user -->|"manages suppliers"| node_suppliers
node_user -->|"manages plans"| node_preventive
node_user -->|"coordinates work"| node_planning
node_user -->|"views work status"| node_briefing
node_briefing -->|"loads sections"| node_home_data
node_service_status -->|"fetches status data"| node_backend
node_user -->|"views quality data"| node_quality
node_user -->|"configures system"| node_admin
node_request_api -->|"accesses records"| node_backend
node_intervention_api -->|"accesses records"| node_backend
node_task_api -->|"accesses records"| node_backend

click node_routes "https://github.com/protogulix/tunnel-gmao/blob/main/src/router/routes.jsx"
click node_login "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/auth/Login.jsx"
click node_layout "https://github.com/protogulix/tunnel-gmao/blob/main/src/components/layout/Layout.jsx"
click node_auth "https://github.com/protogulix/tunnel-gmao/blob/main/src/auth/AuthContext.jsx"
click node_requests "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/intervention-requests/InterventionRequestsPage.jsx"
click node_request_api "https://github.com/protogulix/tunnel-gmao/blob/main/src/api/intervention-requests.js"
click node_interventions "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/interventions/InterventionsListPage.jsx"
click node_intervention_detail "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/interventions/InterventionDetailPage.jsx"
click node_actions "https://github.com/protogulix/tunnel-gmao/blob/main/src/components/interventions/ActionForm/index.jsx"
click node_equipment "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/equipements/EquipementsPage.jsx"
click node_tasks "https://github.com/protogulix/tunnel-gmao/blob/main/src/hooks/tasks/useTasks.js"
click node_stock "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/stock/StockPage.jsx"
click node_suppliers "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/suppliers/SuppliersPage.jsx"
click node_purchasing "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/purchase/PurchaseRequestsPage.jsx"
click node_preventive "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/preventive/PreventivePage.jsx"
click node_planning "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/coordination/CoordinationPage.jsx"
click node_briefing "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/briefing/BriefingPage.jsx"
click node_home_data "https://github.com/protogulix/tunnel-gmao/blob/main/src/hooks/useBriefingData.js"
click node_service_status "https://github.com/protogulix/tunnel-gmao/blob/main/src/hooks/service-status/useServiceData.js"
click node_quality "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/quality-data/QualityDataPage.jsx"
click node_admin "https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/admin/AdminPage.jsx"
click node_intervention_api "https://github.com/protogulix/tunnel-gmao/blob/main/src/api/interventions.js"
click node_task_api "https://github.com/protogulix/tunnel-gmao/blob/main/src/api/tasks.js"

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_routes,node_login,node_layout,node_auth toneBlue
class node_requests,node_interventions,node_intervention_detail,node_actions,node_equipment,node_tasks,node_backend toneAmber
class node_stock,node_suppliers,node_purchasing toneMint
class node_preventive,node_planning,node_briefing,node_home_data,node_service_status,node_quality,node_admin toneRose
class node_request_api,node_intervention_api,node_task_api,node_user toneIndigo
```

## Components

### App entry and access

- [Routes](https://github.com/protogulix/tunnel-gmao/blob/main/src/router/routes.jsx): `src/router/routes.jsx`
- [Login](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/auth/Login.jsx): `src/pages/auth/Login.jsx`
- [Application layout](https://github.com/protogulix/tunnel-gmao/blob/main/src/components/layout/Layout.jsx): `src/components/layout/Layout.jsx`
- [Authentication context](https://github.com/protogulix/tunnel-gmao/blob/main/src/auth/AuthContext.jsx): `src/auth/AuthContext.jsx`

### Maintenance workflow

- [Intervention requests](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/intervention-requests/InterventionRequestsPage.jsx): `src/pages/intervention-requests/InterventionRequestsPage.jsx`
- [Interventions](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/interventions/InterventionsListPage.jsx): `src/pages/interventions/InterventionsListPage.jsx`
- [Intervention execution](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/interventions/InterventionDetailPage.jsx): `src/pages/interventions/InterventionDetailPage.jsx`
- [Action forms](https://github.com/protogulix/tunnel-gmao/blob/main/src/components/interventions/ActionForm/index.jsx): `src/components/interventions/ActionForm/index.jsx`
- [Equipment records](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/equipements/EquipementsPage.jsx): `src/pages/equipements/EquipementsPage.jsx`
- [Task workspace](https://github.com/protogulix/tunnel-gmao/blob/main/src/hooks/tasks/useTasks.js): `src/hooks/tasks/useTasks.js`

### Resources and purchasing

- [Stock and parts](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/stock/StockPage.jsx): `src/pages/stock/StockPage.jsx`
- [Suppliers](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/suppliers/SuppliersPage.jsx): `src/pages/suppliers/SuppliersPage.jsx`
- [Purchasing](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/purchase/PurchaseRequestsPage.jsx): `src/pages/purchase/PurchaseRequestsPage.jsx`

### Planning and oversight

- [Preventive maintenance](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/preventive/PreventivePage.jsx): `src/pages/preventive/PreventivePage.jsx`
- [Planning](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/coordination/CoordinationPage.jsx): `src/pages/coordination/CoordinationPage.jsx`
- [Maintenance briefing](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/briefing/BriefingPage.jsx): `src/pages/briefing/BriefingPage.jsx`
- [Briefing data hook](https://github.com/protogulix/tunnel-gmao/blob/main/src/hooks/useBriefingData.js): `src/hooks/useBriefingData.js`
- [Service status](https://github.com/protogulix/tunnel-gmao/blob/main/src/hooks/service-status/useServiceData.js): `src/hooks/service-status/useServiceData.js`
- [Quality data](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/quality-data/QualityDataPage.jsx): `src/pages/quality-data/QualityDataPage.jsx`
- [Administration](https://github.com/protogulix/tunnel-gmao/blob/main/src/pages/admin/AdminPage.jsx): `src/pages/admin/AdminPage.jsx`

### API access

- [Request API](https://github.com/protogulix/tunnel-gmao/blob/main/src/api/intervention-requests.js): `src/api/intervention-requests.js`
- [Intervention API](https://github.com/protogulix/tunnel-gmao/blob/main/src/api/interventions.js): `src/api/interventions.js`
- [Task API](https://github.com/protogulix/tunnel-gmao/blob/main/src/api/tasks.js): `src/api/tasks.js`

### Other components

- **Technician / staff**
- **Application backend**

## Connections

- Technician / staff → Routes: opens app
- Routes → Login: routes to
- Routes → Application layout: wraps pages
- Application layout → Authentication context: uses auth state
- Technician / staff → Intervention requests: reports need
- Intervention requests → Request API: submits request
- Intervention requests → Interventions: accepted request leads to
- Interventions → Intervention execution: opens work record
- Intervention execution → Action forms: records field work
- Intervention execution → Task workspace: organizes work
- Task workspace → Task API: loads and updates
- Briefing data hook → Intervention API: fetches interventions
- Briefing data hook → Request API: fetches requests
- Technician / staff → Equipment records: manages machines
- Technician / staff → Stock and parts: manages parts
- Technician / staff → Purchasing: tracks purchases
- Technician / staff → Suppliers: manages suppliers
- Technician / staff → Preventive maintenance: manages plans
- Technician / staff → Planning: coordinates work
- Technician / staff → Maintenance briefing: views work status
- Maintenance briefing → Briefing data hook: loads sections
- Service status → Application backend: fetches status data
- Technician / staff → Quality data: views quality data
- Technician / staff → Administration: configures system
- Request API → Application backend: accesses records
- Intervention API → Application backend: accesses records
- Task API → Application backend: accesses records
