# pedrowatermann/vantrack-doc architecture

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

## Overview

VanTrack is specified as a school-van management and tracking application; this repository contains its requirements and use-case artifacts, not an implementation of the application runtime. The modeled workflow spans user/company setup, student transport operations, routing and notifications. The use-case diagram generator identifies actor associations and include/extend relationships; runtime calls, storage, and service protocols cannot be verified from the available source.

Main entry points: [`documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py) (Cancel Transport)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Accounts &amp; Students"]
  node_link_user["Link User to Company"]
  node_student_crud["Manage Student"]
  node_authorize["Record Guardian Authorization"]
end

subgraph group_journey["Transport Journey"]
  node_track["Track Van Live"]
  node_presence["Confirm Presence"]
  node_cancel["Cancel Transport"]
  node_link_driver["Assign Driver to Van"]
  node_boarding["Record Boarding"]
  node_alighting["Record Alighting"]
end

subgraph group_routing["Routing &amp; Delays"]
  node_optimize["Generate Optimized Route"]
  node_recalculate["Recalculate Route"]
  node_delay_detect["Detect Delay Automatically"]
  node_delay_issue["Issue Delay Notice"]
end

subgraph group_alerts["Notifications &amp; Chat"]
  node_chat["Exchange Chat Messages"]
  node_nearby["Notify Van Proximity"]
  node_boarding_alert["Notify Boarding or Alighting"]
  node_delay_alert["Notify Guardians of Delay"]
  node_cancel_alert["Notify Driver of Cancellation"]
end

node_guardian(("Guardian"))
node_student_actor(("Student"))
node_company(("Transport Company"))
node_driver(("Driver"))
node_scheduler(("Scheduler"))
node_geolocation(("Geolocation Service"))
node_push(("Notification Service"))

node_guardian -->|"initiates"| node_link_user
node_student_actor -->|"initiates"| node_link_user
node_guardian -->|"initiates"| node_student_crud
node_student_actor -->|"initiates"| node_student_crud
node_guardian -->|"initiates"| node_track
node_student_actor -->|"initiates"| node_track
node_guardian -->|"initiates"| node_presence
node_student_actor -->|"initiates"| node_presence
node_guardian -->|"initiates"| node_cancel
node_student_actor -->|"initiates"| node_cancel
node_guardian -->|"uses"| node_chat
node_student_actor -->|"uses"| node_chat
node_driver -->|"uses"| node_chat
node_company -->|"initiates"| node_link_driver
node_driver -->|"records"| node_boarding
node_driver -->|"records"| node_alighting
node_driver -->|"issues"| node_delay_issue
node_driver -->|"requests"| node_optimize
node_scheduler -->|"triggers"| node_optimize
node_scheduler -->|"triggers"| node_delay_detect
node_geolocation -->|"supports"| node_track
node_geolocation -->|"supports"| node_recalculate
node_geolocation -->|"supports"| node_nearby
node_geolocation -->|"supports"| node_optimize
node_geolocation -->|"supports"| node_delay_detect
node_push -->|"supports"| node_boarding_alert
node_push -->|"supports"| node_nearby
node_push -->|"supports"| node_delay_alert
node_push -->|"supports"| node_cancel_alert
node_cancel -.->|"includes"| node_cancel_alert
node_boarding -.->|"includes"| node_boarding_alert
node_alighting -.->|"includes"| node_boarding_alert
node_delay_issue -.->|"includes"| node_delay_alert
node_delay_detect -.->|"includes"| node_delay_alert
node_authorize -.->|"extends"| node_student_crud
node_recalculate -.->|"extends"| node_cancel

click node_link_user "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_student_crud "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_authorize "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_track "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_presence "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_cancel "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_link_driver "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_boarding "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_alighting "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_optimize "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_recalculate "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_delay_detect "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_delay_issue "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_chat "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_nearby "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_boarding_alert "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_delay_alert "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py"
click node_cancel_alert "https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.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_link_user,node_student_crud,node_authorize toneBlue
class node_track,node_presence,node_cancel,node_link_driver,node_boarding,node_alighting toneAmber
class node_optimize,node_recalculate,node_delay_detect,node_delay_issue toneMint
class node_chat,node_nearby,node_boarding_alert,node_delay_alert,node_cancel_alert,node_scheduler toneRose
class node_guardian,node_student_actor,node_company,node_driver,node_geolocation,node_push toneIndigo
```

## Components

### Accounts & Students

- [Link User to Company](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Manage Student](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Record Guardian Authorization](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`

### Transport Journey

- [Track Van Live](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Confirm Presence](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Cancel Transport](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Assign Driver to Van](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Record Boarding](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Record Alighting](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`

### Routing & Delays

- [Generate Optimized Route](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Recalculate Route](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Detect Delay Automatically](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Issue Delay Notice](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`

### Notifications & Chat

- [Exchange Chat Messages](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Notify Van Proximity](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Notify Boarding or Alighting](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Notify Guardians of Delay](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`
- [Notify Driver of Cancellation](https://github.com/pedrowatermann/vantrack-doc/blob/main/documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py): `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`

### Other components

- **Guardian**
- **Student**
- **Transport Company**
- **Driver**
- **Scheduler**
- **Geolocation Service**
- **Notification Service**

## Connections

- Guardian → Link User to Company: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Student → Link User to Company: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Guardian → Manage Student: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Student → Manage Student: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Guardian → Track Van Live: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Student → Track Van Live: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Guardian → Confirm Presence: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Student → Confirm Presence: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Guardian → Cancel Transport: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Student → Cancel Transport: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Guardian → Exchange Chat Messages: uses (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Student → Exchange Chat Messages: uses (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Driver → Exchange Chat Messages: uses (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Transport Company → Assign Driver to Van: initiates (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Driver → Record Boarding: records (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Driver → Record Alighting: records (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Driver → Issue Delay Notice: issues (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Driver → Generate Optimized Route: requests (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Scheduler → Generate Optimized Route: triggers (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Scheduler → Detect Delay Automatically: triggers (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Geolocation Service → Track Van Live: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Geolocation Service → Recalculate Route: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Geolocation Service → Notify Van Proximity: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Geolocation Service → Generate Optimized Route: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Geolocation Service → Detect Delay Automatically: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Notification Service → Notify Boarding or Alighting: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Notification Service → Notify Van Proximity: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Notification Service → Notify Guardians of Delay: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Notification Service → Notify Driver of Cancellation: supports (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Cancel Transport → Notify Driver of Cancellation: includes (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Record Boarding → Notify Boarding or Alighting: includes (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Record Alighting → Notify Boarding or Alighting: includes (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Issue Delay Notice → Notify Guardians of Delay: includes (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Detect Delay Automatically → Notify Guardians of Delay: includes (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Record Guardian Authorization → Manage Student: extends (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
- Recalculate Route → Cancel Transport: extends (evidence: `documentos/atividade-03/scripts/gerar_diagrama_casos_de_uso.py`)
