# dunk3nn/group_3 architecture

> Architecture diagram of the GitHub repository dunk3nn/group_3, 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/dunk3nn/group_3
- Repository: https://github.com/dunk3nn/group_3

## Overview

This is a border-entry administration system spanning an Express/MySQL API and PHP/MySQL screens, with browser JavaScript clients. Its core workflow manages travelers, vehicles, and entry records, then supports violations, alerts, fee rules, penalties, and payments; separate administration covers users, checkpoints, personnel, shifts, and assignments. The Node backend separates routing, controllers, models, and pooled database access, while several PHP screens access MySQL directly. The README documents major screens and reports; some unsampled integrations are therefore represented without asserting unverified call paths.

Main entry points: [`backend/server.js`](https://github.com/dunk3nn/group_3/blob/main/backend/server.js) (Express API), [`db.php`](https://github.com/dunk3nn/group_3/blob/main/db.php) (PHP Database Connection), [`php/divine/entry_records.php`](https://github.com/dunk3nn/group_3/blob/main/php/divine/entry_records.php) (Traveler And Vehicle Screens), [`backend/config/db.js`](https://github.com/dunk3nn/group_3/blob/main/backend/config/db.js) (MySQL Pool)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API Runtime"]
  node_server["Express API<br/>[server.js]"]
  node_pool["MySQL Pool<br/>[db.js]"]
end

subgraph group_records["Entry Operations"]
  node_entry["Entry Records"]
  node_traveler["Travelers"]
  node_vehicle["Vehicles"]
  node_violation["Violations"]
  node_alerts["Alerts<br/>[alertController.js]"]
  node_audit["Audit Trail<br/>[auditLogModel.js]"]
  node_entriesjs["Entry Client<br/>[entries.js]"]
end

subgraph group_billing["Fees And Payments"]
  node_billingapi["Fee And Payment API<br/>[server.js]"]
  node_feeui["Fee Rules<br/>[fee_rules.php]"]
  node_paymentjs["Payments Client<br/>[payments.js]"]
end

subgraph group_admin["Administration"]
  node_users["User Management<br/>[userController.js]"]
  node_personnel["Personnel Management"]
  node_shifts["Shift Management<br/>[shiftController.js]"]
  node_assignments["Checkpoint Assignments"]
  node_checkpoints["Checkpoint Data"]
end

subgraph group_php["PHP Screens"]
  node_phprecords["Traveler And Vehicle Screens<br/>[entry_records.php]"]
  node_phpusers["Users And Roles<br/>[users.php]"]
  node_phppersonnel["Personnel Screen<br/>[index.php]"]
  node_phpshifts["Shift Screen<br/>[index.php]"]
  node_phplookups["Checkpoint And Lane Screens<br/>[lanes.php]"]
  node_phpevents["Violations And Alerts<br/>[violations.php]"]
  node_phpreports["Reports<br/>[entry_report.php]"]
  node_phpdb["PHP Database Connection<br/>[db.php]"]
end

node_operator(("Staff User"))
node_webjs["Browser Clients<br/>[api.js]"]
node_database[("MySQL Database")]

node_operator -.->|"uses"| node_webjs
node_webjs -.->|"requests"| node_server
node_server -->|"routes"| node_entry
node_server -->|"routes"| node_traveler
node_server -->|"routes"| node_vehicle
node_server -->|"routes"| node_violation
node_server -->|"routes"| node_alerts
node_server -->|"routes"| node_users
node_server -->|"routes"| node_personnel
node_server -->|"routes"| node_shifts
node_server -->|"routes"| node_assignments
node_server -->|"routes"| node_checkpoints
node_server -->|"serves"| node_billingapi
node_violation -->|"writes"| node_audit
node_alerts -->|"writes"| node_audit
node_server -->|"queries"| node_pool
node_pool -->|"connects"| node_database
node_feeui -->|"uses connection"| node_phpdb
node_phprecords -->|"uses connection"| node_phpdb
node_phpusers -->|"uses connection"| node_phpdb
node_phppersonnel -->|"uses connection"| node_phpdb
node_phpshifts -->|"uses connection"| node_phpdb
node_phplookups -->|"uses connection"| node_phpdb
node_phpevents -->|"uses connection"| node_phpdb
node_phpdb -->|"connects"| node_database
node_entriesjs -.->|"requests"| node_server
node_paymentjs -.->|"requests"| node_server
node_phprecords -.->|"supports reports"| node_phpreports

click node_webjs "https://github.com/dunk3nn/group_3/blob/main/frontend/js/api.js"
click node_server "https://github.com/dunk3nn/group_3/blob/main/backend/server.js"
click node_pool "https://github.com/dunk3nn/group_3/blob/main/backend/config/db.js"
click node_entry "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/entryRecordController.js"
click node_traveler "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/travelerController.js"
click node_vehicle "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/vehicleController.js"
click node_violation "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/violationController.js"
click node_alerts "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/alertController.js"
click node_audit "https://github.com/dunk3nn/group_3/blob/main/backend/models/auditLogModel.js"
click node_billingapi "https://github.com/dunk3nn/group_3/blob/main/backend/server.js"
click node_feeui "https://github.com/dunk3nn/group_3/blob/main/php/kenn/fee_rules.php"
click node_paymentjs "https://github.com/dunk3nn/group_3/blob/main/frontend/js/payments.js"
click node_entriesjs "https://github.com/dunk3nn/group_3/blob/main/frontend/js/entries.js"
click node_users "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/userController.js"
click node_personnel "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/personnelController.js"
click node_shifts "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/shiftController.js"
click node_assignments "https://github.com/dunk3nn/group_3/blob/main/backend/controllers/assignmentController.js"
click node_checkpoints "https://github.com/dunk3nn/group_3/blob/main/backend/routes/checkpointRoutes.js"
click node_phprecords "https://github.com/dunk3nn/group_3/blob/main/php/divine/entry_records.php"
click node_phpusers "https://github.com/dunk3nn/group_3/blob/main/php/albert/users.php"
click node_phppersonnel "https://github.com/dunk3nn/group_3/blob/main/personnel/index.php"
click node_phpshifts "https://github.com/dunk3nn/group_3/blob/main/shifts/index.php"
click node_phplookups "https://github.com/dunk3nn/group_3/blob/main/php/kyfer/lanes.php"
click node_phpevents "https://github.com/dunk3nn/group_3/blob/main/php/michael/violations.php"
click node_phpreports "https://github.com/dunk3nn/group_3/blob/main/php/divine/entry_report.php"
click node_phpdb "https://github.com/dunk3nn/group_3/blob/main/db.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_server,node_pool,node_operator,node_webjs toneBlue
class node_entry,node_traveler,node_vehicle,node_violation,node_alerts,node_audit,node_entriesjs,node_database toneAmber
class node_billingapi,node_feeui,node_paymentjs toneMint
class node_users,node_personnel,node_shifts,node_assignments,node_checkpoints toneRose
class node_phprecords,node_phpusers,node_phppersonnel,node_phpshifts,node_phplookups,node_phpevents,node_phpreports,node_phpdb toneIndigo
```

## Components

### API Runtime

- [Express API](https://github.com/dunk3nn/group_3/blob/main/backend/server.js): `backend/server.js`
- [MySQL Pool](https://github.com/dunk3nn/group_3/blob/main/backend/config/db.js): `backend/config/db.js`

### Entry Operations

- [Entry Records](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/entryRecordController.js): `backend/controllers/entryRecordController.js`
- [Travelers](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/travelerController.js): `backend/controllers/travelerController.js`
- [Vehicles](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/vehicleController.js): `backend/controllers/vehicleController.js`
- [Violations](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/violationController.js): `backend/controllers/violationController.js`
- [Alerts](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/alertController.js): `backend/controllers/alertController.js`
- [Audit Trail](https://github.com/dunk3nn/group_3/blob/main/backend/models/auditLogModel.js): `backend/models/auditLogModel.js`
- [Entry Client](https://github.com/dunk3nn/group_3/blob/main/frontend/js/entries.js): `frontend/js/entries.js`

### Fees And Payments

- [Fee And Payment API](https://github.com/dunk3nn/group_3/blob/main/backend/server.js): `backend/server.js`
- [Fee Rules](https://github.com/dunk3nn/group_3/blob/main/php/kenn/fee_rules.php): `php/kenn/fee_rules.php`
- [Payments Client](https://github.com/dunk3nn/group_3/blob/main/frontend/js/payments.js): `frontend/js/payments.js`

### Administration

- [User Management](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/userController.js): `backend/controllers/userController.js`
- [Personnel Management](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/personnelController.js): `backend/controllers/personnelController.js`
- [Shift Management](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/shiftController.js): `backend/controllers/shiftController.js`
- [Checkpoint Assignments](https://github.com/dunk3nn/group_3/blob/main/backend/controllers/assignmentController.js): `backend/controllers/assignmentController.js`
- [Checkpoint Data](https://github.com/dunk3nn/group_3/blob/main/backend/routes/checkpointRoutes.js): `backend/routes/checkpointRoutes.js`

### PHP Screens

- [Traveler And Vehicle Screens](https://github.com/dunk3nn/group_3/blob/main/php/divine/entry_records.php): `php/divine/entry_records.php`
- [Users And Roles](https://github.com/dunk3nn/group_3/blob/main/php/albert/users.php): `php/albert/users.php`
- [Personnel Screen](https://github.com/dunk3nn/group_3/blob/main/personnel/index.php): `personnel/index.php`
- [Shift Screen](https://github.com/dunk3nn/group_3/blob/main/shifts/index.php): `shifts/index.php`
- [Checkpoint And Lane Screens](https://github.com/dunk3nn/group_3/blob/main/php/kyfer/lanes.php): `php/kyfer/lanes.php`
- [Violations And Alerts](https://github.com/dunk3nn/group_3/blob/main/php/michael/violations.php): `php/michael/violations.php`
- [Reports](https://github.com/dunk3nn/group_3/blob/main/php/divine/entry_report.php): `php/divine/entry_report.php`
- [PHP Database Connection](https://github.com/dunk3nn/group_3/blob/main/db.php): `db.php`

### Other components

- **Staff User**
- [Browser Clients](https://github.com/dunk3nn/group_3/blob/main/frontend/js/api.js): `frontend/js/api.js`
- **MySQL Database**

## Connections

- Staff User → Browser Clients: uses
- Browser Clients → Express API: requests
- Express API → Entry Records: routes (evidence: `backend/server.js`)
- Express API → Travelers: routes (evidence: `backend/server.js`)
- Express API → Vehicles: routes (evidence: `backend/server.js`)
- Express API → Violations: routes (evidence: `backend/server.js`)
- Express API → Alerts: routes (evidence: `backend/server.js`)
- Express API → User Management: routes (evidence: `backend/server.js`)
- Express API → Personnel Management: routes (evidence: `backend/server.js`)
- Express API → Shift Management: routes (evidence: `backend/server.js`)
- Express API → Checkpoint Assignments: routes (evidence: `backend/server.js`)
- Express API → Checkpoint Data: routes (evidence: `backend/server.js`)
- Express API → Fee And Payment API: serves (evidence: `backend/server.js`)
- Violations → Audit Trail: writes (evidence: `backend/controllers/violationController.js`)
- Alerts → Audit Trail: writes (evidence: `backend/controllers/alertController.js`)
- Express API → MySQL Pool: queries (evidence: `backend/server.js`)
- MySQL Pool → MySQL Database: connects (evidence: `backend/config/db.js`)
- Fee Rules → PHP Database Connection: uses connection (evidence: `php/kenn/fee_rules.php`)
- Traveler And Vehicle Screens → PHP Database Connection: uses connection (evidence: `php/divine/entry_records.php`)
- Users And Roles → PHP Database Connection: uses connection (evidence: `php/albert/users.php`)
- Personnel Screen → PHP Database Connection: uses connection (evidence: `personnel/index.php`)
- Shift Screen → PHP Database Connection: uses connection (evidence: `shifts/index.php`)
- Checkpoint And Lane Screens → PHP Database Connection: uses connection (evidence: `php/kyfer/lanes.php`)
- Violations And Alerts → PHP Database Connection: uses connection (evidence: `php/michael/violations.php`)
- PHP Database Connection → MySQL Database: connects (evidence: `db.php`)
- Entry Client → Express API: requests
- Payments Client → Express API: requests
- Traveler And Vehicle Screens → Reports: supports reports
