# gael2053/student-attendance-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/gael2053/student-attendance-management-system
- Repository: https://github.com/gael2053/student-attendance-management-system

## Overview

This is a terminal-based student attendance manager. A teacher loads saved records, signs in, and chooses to mark attendance, review records and summaries, or clear saved records. Marking collects student, section, and subject details, calculates Present/Late/Absent from configured class times, then saves and displays the record. The graph separates orchestration, attendance, access and presentation, and persistence. Edges are based on the supplied source excerpts; the README names the product but documents no additional capabilities.

Main entry points: [`main.py`](https://github.com/gael2053/student-attendance-management-system/blob/main/main.py) (Menu and orchestration), [`storage.py`](https://github.com/gael2053/student-attendance-management-system/blob/main/storage.py) (Record loading and saving), [`attendance.py`](https://github.com/gael2053/student-attendance-management-system/blob/main/attendance.py) (Attendance and reports), [`UI.py`](https://github.com/gael2053/student-attendance-management-system/blob/main/UI.py) (Terminal presentation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_orchestration["Application flow"]
  node_main["Menu and orchestration<br/>[main.py]"]
end

subgraph group_attendance["Attendance"]
  node_attendance_ops["Attendance and reports<br/>[attendance.py]"]
end

subgraph group_access["Access and presentation"]
  node_auth["Teacher login<br/>[auth.py]"]
  node_ui["Terminal presentation<br/>[UI.py]"]
  node_config["Credentials and schedules<br/>[config.py]"]
end

subgraph group_persistence["Persistence"]
  node_storage["Record loading and saving<br/>[storage.py]"]
  node_record_file[("Attendance records file")]
end

node_teacher(("Teacher"))

node_teacher -->|"selects actions"| node_main
node_main -->|"loads records"| node_storage
node_main -->|"checks login"| node_auth
node_main -->|"dispatches tasks"| node_attendance_ops
node_main -->|"saves on exit"| node_storage
node_main -->|"clears records"| node_storage
node_main -->|"displays menus"| node_ui
node_auth -->|"checks credentials"| node_config
node_auth -->|"shows banner"| node_ui
node_attendance_ops -->|"reads schedules"| node_config
node_attendance_ops -->|"updates and saves"| node_storage
node_attendance_ops -->|"renders reports"| node_ui
node_storage -->|"reads file setting"| node_config
node_storage -->|"shows clear prompt"| node_ui
node_storage -->|"reads and writes"| node_record_file

click node_main "https://github.com/gael2053/student-attendance-management-system/blob/main/main.py"
click node_attendance_ops "https://github.com/gael2053/student-attendance-management-system/blob/main/attendance.py"
click node_auth "https://github.com/gael2053/student-attendance-management-system/blob/main/auth.py"
click node_ui "https://github.com/gael2053/student-attendance-management-system/blob/main/UI.py"
click node_config "https://github.com/gael2053/student-attendance-management-system/blob/main/config.py"
click node_storage "https://github.com/gael2053/student-attendance-management-system/blob/main/storage.py"
click node_record_file "https://github.com/gael2053/student-attendance-management-system/blob/main/attendance_records.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 toneBlue
class node_attendance_ops toneAmber
class node_auth,node_ui,node_config toneMint
class node_storage,node_record_file toneRose
class node_teacher toneIndigo
```

## Components

### Application flow

- [Menu and orchestration](https://github.com/gael2053/student-attendance-management-system/blob/main/main.py): `main.py`

### Attendance

- [Attendance and reports](https://github.com/gael2053/student-attendance-management-system/blob/main/attendance.py): `attendance.py`

### Access and presentation

- [Teacher login](https://github.com/gael2053/student-attendance-management-system/blob/main/auth.py): `auth.py`
- [Terminal presentation](https://github.com/gael2053/student-attendance-management-system/blob/main/UI.py): `UI.py`
- [Credentials and schedules](https://github.com/gael2053/student-attendance-management-system/blob/main/config.py): `config.py`

### Persistence

- [Record loading and saving](https://github.com/gael2053/student-attendance-management-system/blob/main/storage.py): `storage.py`
- [Attendance records file](https://github.com/gael2053/student-attendance-management-system/blob/main/attendance_records.txt): `attendance_records.txt`

### Other components

- **Teacher**

## Connections

- Teacher → Menu and orchestration: selects actions (evidence: `main.py`)
- Menu and orchestration → Record loading and saving: loads records (evidence: `main.py`)
- Menu and orchestration → Teacher login: checks login (evidence: `main.py`)
- Menu and orchestration → Attendance and reports: dispatches tasks (evidence: `main.py`)
- Menu and orchestration → Record loading and saving: saves on exit (evidence: `main.py`)
- Menu and orchestration → Record loading and saving: clears records (evidence: `main.py`)
- Menu and orchestration → Terminal presentation: displays menus (evidence: `main.py`)
- Teacher login → Credentials and schedules: checks credentials (evidence: `auth.py`)
- Teacher login → Terminal presentation: shows banner (evidence: `auth.py`)
- Attendance and reports → Credentials and schedules: reads schedules (evidence: `attendance.py`)
- Attendance and reports → Record loading and saving: updates and saves (evidence: `attendance.py`)
- Attendance and reports → Terminal presentation: renders reports (evidence: `attendance.py`)
- Record loading and saving → Credentials and schedules: reads file setting (evidence: `storage.py`)
- Record loading and saving → Terminal presentation: shows clear prompt (evidence: `storage.py`)
- Record loading and saving → Attendance records file: reads and writes (evidence: `storage.py`)
