# minhkhang-io/smartsite_ai_integrated_construction_site_management_system architecture

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

- Interactive diagram: https://gitdiagram.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system
- Repository: https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system

## Overview

SmartSite is a terminal-based site-management application for people, zones, attendance, and incidents, with account login and role-specific menus. The user journey starts at the terminal entry point, proceeds through welcome and login into a role menu, and invokes management functions that work with domain records and text-file data. Validation is a shared internal layer. The README also names authentication, role assignment, validation, and data as project-map topics. Some manager and menu implementations are only partially excerpted, so uncertain links are omitted.

Main entry points: [`src/ui_Dang_dang_sua/ManagementMenu.java`](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/ui_Dang_dang_sua/ManagementMenu.java) (Management menu), [`src/Zone/ZoneManager2.java`](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Zone/ZoneManager2.java) (Zone management), [`src/Person/PersonManager.java`](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Person/PersonManager.java) (People management), [`src/Incident/IncidentManager.java`](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Incident/IncidentManager.java) (Incident management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["Terminal interaction"]
  node_main["Application entry<br/>[Main.java]"]
  node_welcome["Welcome menu<br/>[WelcomeMenu.java]"]
  node_login["Login and roles<br/>[LoginMenu.java]"]
  node_rolemenus["Role menus"]
  node_management["Management menu"]
end

subgraph group_domain["Site operations"]
  node_zones["Zone management<br/>[ZoneManager2.java]"]
  node_zone["Zone records<br/>[Zone.java]"]
  node_restricted["Restricted zones"]
  node_attendance["Attendance management"]
  node_attrecord["Attendance records"]
  node_incidents["Incident management"]
  node_incident["Incident records<br/>[Incident.java]"]
end

subgraph group_identity["People and accounts"]
  node_people["People management<br/>[PersonManager.java]"]
  node_person["Person records<br/>[Person.java]"]
  node_accounts["Account management"]
  node_account["Account records<br/>[Account.java]"]
end

subgraph group_shared["Validation and storage"]
  node_validation["Input and validation"]
  node_persondata[("People data<br/>[Person.txt]")]
  node_zonedata[("Zone data<br/>[Zone.txt]")]
  node_attdata[("Attendance data<br/>[Attendance.txt]")]
  node_incdata[("Incident data<br/>[Incident.txt]")]
  node_accountdata[("Account data<br/>[accounts.txt]")]
end

node_operator(("Operator"))

node_operator -->|"starts"| node_main
node_main -->|"launches"| node_welcome
node_welcome -->|"opens"| node_login
node_login -->|"dispatches"| node_rolemenus
node_rolemenus -->|"opens"| node_management
node_management -->|"invokes"| node_people
node_management -->|"invokes"| node_zones
node_management -->|"invokes"| node_attendance
node_management -->|"invokes"| node_incidents
node_management -->|"invokes"| node_accounts
node_people -->|"creates"| node_person
node_people -->|"uses"| node_validation
node_zones -->|"creates"| node_zone
node_zones -->|"creates"| node_restricted
node_zones -->|"uses"| node_validation
node_attendance -->|"creates"| node_attrecord
node_attendance -->|"uses"| node_person
node_incidents -->|"creates"| node_incident
node_incidents -->|"looks up"| node_people
node_incidents -->|"uses"| node_zones
node_incident -->|"references"| node_person
node_incident -->|"references"| node_zone
node_accounts -->|"manages"| node_account
node_accounts -->|"uses"| node_people
node_people -->|"reads and writes"| node_persondata
node_zones -->|"reads and writes"| node_zonedata
node_attendance -->|"reads and writes"| node_attdata
node_incidents -->|"reads and writes"| node_incdata

click node_main "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Main/Main.java"
click node_welcome "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/ui_Dang_dang_sua/WelcomeMenu.java"
click node_login "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/ui_Dang_dang_sua/LoginMenu.java"
click node_rolemenus "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/tree/main/src/ui_Dang_dang_sua"
click node_management "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/ui_Dang_dang_sua/ManagementMenu.java"
click node_people "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Person/PersonManager.java"
click node_person "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Person/Person.java"
click node_accounts "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/account/AccountManager.java"
click node_account "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/account/Account.java"
click node_zones "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Zone/ZoneManager2.java"
click node_zone "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Zone/Zone.java"
click node_restricted "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Zone/RestrictedZone.java"
click node_attendance "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Attendance/AttendanceManager.java"
click node_attrecord "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Attendance/AttendanceRecord.java"
click node_incidents "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Incident/IncidentManager.java"
click node_incident "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Incident/Incident.java"
click node_validation "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/tree/main/src/Validatable"
click node_persondata "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Person.txt"
click node_zonedata "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Zone.txt"
click node_attdata "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Attendance.txt"
click node_incdata "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Incident.txt"
click node_accountdata "https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/accounts.txt"

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_main,node_welcome,node_login,node_rolemenus,node_management toneBlue
class node_zones,node_zone,node_restricted,node_attendance,node_attrecord,node_incidents,node_incident toneAmber
class node_people,node_person,node_accounts,node_account toneMint
class node_validation,node_persondata,node_zonedata,node_attdata,node_incdata,node_accountdata toneRose
class node_operator toneIndigo
```

## Components

### Terminal interaction

- [Application entry](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Main/Main.java): `src/Main/Main.java`
- [Welcome menu](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/ui_Dang_dang_sua/WelcomeMenu.java): `src/ui_Dang_dang_sua/WelcomeMenu.java`
- [Login and roles](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/ui_Dang_dang_sua/LoginMenu.java): `src/ui_Dang_dang_sua/LoginMenu.java`
- [Role menus](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/tree/main/src/ui_Dang_dang_sua): `src/ui_Dang_dang_sua`
- [Management menu](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/ui_Dang_dang_sua/ManagementMenu.java): `src/ui_Dang_dang_sua/ManagementMenu.java`

### Site operations

- [Zone management](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Zone/ZoneManager2.java): `src/Zone/ZoneManager2.java`
- [Zone records](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Zone/Zone.java): `src/Zone/Zone.java`
- [Restricted zones](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Zone/RestrictedZone.java): `src/Zone/RestrictedZone.java`
- [Attendance management](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Attendance/AttendanceManager.java): `src/Attendance/AttendanceManager.java`
- [Attendance records](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Attendance/AttendanceRecord.java): `src/Attendance/AttendanceRecord.java`
- [Incident management](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Incident/IncidentManager.java): `src/Incident/IncidentManager.java`
- [Incident records](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Incident/Incident.java): `src/Incident/Incident.java`

### People and accounts

- [People management](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Person/PersonManager.java): `src/Person/PersonManager.java`
- [Person records](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/Person/Person.java): `src/Person/Person.java`
- [Account management](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/account/AccountManager.java): `src/account/AccountManager.java`
- [Account records](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/src/account/Account.java): `src/account/Account.java`

### Validation and storage

- [Input and validation](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/tree/main/src/Validatable): `src/Validatable`
- [People data](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Person.txt): `data/Person.txt`
- [Zone data](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Zone.txt): `data/Zone.txt`
- [Attendance data](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Attendance.txt): `data/Attendance.txt`
- [Incident data](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/Incident.txt): `data/Incident.txt`
- [Account data](https://github.com/minhkhang-io/smartsite_ai_integrated_construction_site_management_system/blob/main/data/accounts.txt): `data/accounts.txt`

### Other components

- **Operator**

## Connections

- Operator → Application entry: starts (evidence: `src/Main/Main.java`)
- Application entry → Welcome menu: launches (evidence: `src/Main/Main.java`)
- Welcome menu → Login and roles: opens
- Login and roles → Role menus: dispatches (evidence: `src/ui_Dang_dang_sua/LoginMenu.java`)
- Role menus → Management menu: opens (evidence: `src/ui_Dang_dang_sua/UserAdminMenu.java`)
- Management menu → People management: invokes (evidence: `src/ui_Dang_dang_sua/ManagementMenu.java`)
- Management menu → Zone management: invokes (evidence: `src/ui_Dang_dang_sua/ManagementMenu.java`)
- Management menu → Attendance management: invokes (evidence: `src/ui_Dang_dang_sua/ManagementMenu.java`)
- Management menu → Incident management: invokes (evidence: `src/ui_Dang_dang_sua/ManagementMenu.java`)
- Management menu → Account management: invokes (evidence: `src/ui_Dang_dang_sua/ManagementMenu.java`)
- People management → Person records: creates (evidence: `src/Person/PersonManager.java`)
- People management → Input and validation: uses (evidence: `src/Person/PersonManager.java`)
- Zone management → Zone records: creates (evidence: `src/Zone/ZoneManager2.java`)
- Zone management → Restricted zones: creates (evidence: `src/Zone/ZoneManager2.java`)
- Zone management → Input and validation: uses (evidence: `src/Zone/ZoneManager2.java`)
- Attendance management → Attendance records: creates (evidence: `src/Attendance/AttendanceManager.java`)
- Attendance management → Person records: uses (evidence: `src/Attendance/AttendanceManager.java`)
- Incident management → Incident records: creates (evidence: `src/Incident/IncidentManager.java`)
- Incident management → People management: looks up (evidence: `src/Incident/IncidentManager.java`)
- Incident management → Zone management: uses (evidence: `src/Incident/IncidentManager.java`)
- Incident records → Person records: references (evidence: `src/Incident/Incident.java`)
- Incident records → Zone records: references (evidence: `src/Incident/Incident.java`)
- Account management → Account records: manages (evidence: `src/account/AccountManager.java`)
- Account management → People management: uses (evidence: `src/account/AccountManager.java`)
- People management → People data: reads and writes (evidence: `src/Person/PersonManager.java`)
- Zone management → Zone data: reads and writes (evidence: `src/Zone/ZoneManager2.java`)
- Attendance management → Attendance data: reads and writes (evidence: `src/Attendance/AttendanceManager.java`)
- Incident management → Incident data: reads and writes (evidence: `src/Incident/IncidentManager.java`)
