# ganavi-gs/attendance-management-system-using-face-recognition architecture

> Architecture diagram of the GitHub repository ganavi-gs/attendance-management-system-using-face-recognition, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ganavi-gs/attendance-management-system-using-face-recognition
- Repository: https://github.com/ganavi-gs/attendance-management-system-using-face-recognition

## Overview

This is a Flask-based student attendance product: users register students with webcam face capture, authenticate through role-based pages, and mark daily attendance through camera recognition. Administrators can manage students and download daily, date-range, and student-list Excel reports. The graph follows only relationships visible in the sampled app and helper sources or stated in the README; unsampled page and dashboard behavior is not expanded.

Main entry points: [`Attendance/app.py`](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py) (Flask routes), [`Attendance/database.py`](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py) (Student records), [`Attendance/face_recognition_module.py`](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py) (Known-face loading), [`Attendance/excel_generator.py`](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/excel_generator.py) (Excel generation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_flask["Flask routes<br/>[app.py]"]
  node_templates["Web pages"]
  node_auth["Accounts and roles<br/>[database.py]"]
end

subgraph group_identity["Student identity"]
  node_registration["Student registration<br/>[app.py]"]
  node_face_capture["Face capture"]
  node_face_encoding["Face encoding"]
  node_face_store["Face image files"]
  node_student_store[("Student records<br/>[database.py]")]
end

subgraph group_attendance["Attendance records"]
  node_face_loading["Known-face loading"]
  node_recognition["Camera recognition"]
  node_attendance_mark["Attendance marking<br/>[app.py]"]
  node_attendance_store[("Attendance records<br/>[database.py]")]
end

subgraph group_reporting["Reports"]
  node_report_routes["Report requests<br/>[app.py]"]
  node_report_queries["Report data queries<br/>[database.py]"]
  node_excel["Excel generation<br/>[excel_generator.py]"]
  node_report_files["Excel report files"]
end

node_visitor(("Browser user"))

node_visitor -->|"uses pages"| node_flask
node_flask -->|"renders"| node_templates
node_flask -->|"verifies accounts"| node_auth
node_flask -->|"routes registration"| node_registration
node_registration -.->|"captures image"| node_face_capture
node_registration -.->|"encodes face"| node_face_encoding
node_registration -->|"registers student"| node_student_store
node_registration -.->|"saves image"| node_face_store
node_flask -.->|"captures face"| node_face_capture
node_flask -.->|"encodes face"| node_face_encoding
node_flask -->|"loads students"| node_student_store
node_flask -->|"loads known faces"| node_face_loading
node_face_loading -.->|"reads encodings"| node_student_store
node_flask -->|"starts recognition"| node_recognition
node_flask -->|"marks attendance"| node_attendance_mark
node_attendance_mark -->|"writes record"| node_attendance_store
node_flask -->|"routes reports"| node_report_routes
node_report_routes -->|"queries records"| node_report_queries
node_report_routes -->|"generates workbook"| node_excel
node_excel -->|"writes workbook"| node_report_files
node_report_routes -->|"exports students"| node_student_store

click node_flask "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py"
click node_templates "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/tree/main/Attendance/templates"
click node_auth "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py"
click node_registration "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py"
click node_face_capture "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py"
click node_face_encoding "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py"
click node_face_store "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/tree/main/Attendance/data"
click node_student_store "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py"
click node_face_loading "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py"
click node_recognition "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py"
click node_attendance_mark "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py"
click node_attendance_store "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py"
click node_report_routes "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py"
click node_report_queries "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py"
click node_excel "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/excel_generator.py"
click node_report_files "https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/tree/main/Attendance/attendance_reports"

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_flask,node_templates,node_auth,node_visitor toneBlue
class node_registration,node_face_capture,node_face_encoding,node_face_store,node_student_store toneAmber
class node_face_loading,node_recognition,node_attendance_mark,node_attendance_store toneMint
class node_report_routes,node_report_queries,node_excel,node_report_files toneRose
```

## Components

### Web application

- [Flask routes](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py): `Attendance/app.py`
- [Web pages](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/tree/main/Attendance/templates): `Attendance/templates`
- [Accounts and roles](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py): `Attendance/database.py`

### Student identity

- [Student registration](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py): `Attendance/app.py`
- [Face capture](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py): `Attendance/face_recognition_module.py`
- [Face encoding](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py): `Attendance/face_recognition_module.py`
- [Face image files](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/tree/main/Attendance/data): `Attendance/data`
- [Student records](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py): `Attendance/database.py`

### Attendance records

- [Known-face loading](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py): `Attendance/face_recognition_module.py`
- [Camera recognition](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/face_recognition_module.py): `Attendance/face_recognition_module.py`
- [Attendance marking](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py): `Attendance/app.py`
- [Attendance records](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py): `Attendance/database.py`

### Reports

- [Report requests](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/app.py): `Attendance/app.py`
- [Report data queries](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/database.py): `Attendance/database.py`
- [Excel generation](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/blob/main/Attendance/excel_generator.py): `Attendance/excel_generator.py`
- [Excel report files](https://github.com/ganavi-gs/attendance-management-system-using-face-recognition/tree/main/Attendance/attendance_reports): `Attendance/attendance_reports`

### Other components

- **Browser user**

## Connections

- Browser user → Flask routes: uses pages (evidence: `README.md`)
- Flask routes → Web pages: renders (evidence: `Attendance/app.py`)
- Flask routes → Accounts and roles: verifies accounts (evidence: `Attendance/app.py`)
- Flask routes → Student registration: routes registration (evidence: `Attendance/app.py`)
- Student registration → Face capture: captures image (evidence: `Attendance/app.py`)
- Student registration → Face encoding: encodes face (evidence: `Attendance/app.py`)
- Student registration → Student records: registers student (evidence: `Attendance/app.py`)
- Student registration → Face image files: saves image
- Flask routes → Face capture: captures face (evidence: `Attendance/app.py`)
- Flask routes → Face encoding: encodes face (evidence: `Attendance/app.py`)
- Flask routes → Student records: loads students (evidence: `Attendance/app.py`)
- Flask routes → Known-face loading: loads known faces (evidence: `Attendance/app.py`)
- Known-face loading → Student records: reads encodings
- Flask routes → Camera recognition: starts recognition (evidence: `Attendance/app.py`)
- Flask routes → Attendance marking: marks attendance (evidence: `Attendance/app.py`)
- Attendance marking → Attendance records: writes record (evidence: `Attendance/app.py`)
- Flask routes → Report requests: routes reports (evidence: `Attendance/app.py`)
- Report requests → Report data queries: queries records (evidence: `Attendance/app.py`)
- Report requests → Excel generation: generates workbook (evidence: `Attendance/app.py`)
- Excel generation → Excel report files: writes workbook (evidence: `Attendance/excel_generator.py`)
- Report requests → Student records: exports students (evidence: `Attendance/app.py`)
