# manju1303/face-attendence architecture

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

- Interactive diagram: https://gitdiagram.com/manju1303/face-attendence
- Repository: https://github.com/manju1303/face-attendence

## Overview

BioAttendAI is a Flask attendance system with two main user flows: students scan faces at the kiosk to record session attendance, while administrators manage enrollment, sessions, attendance corrections, and reports. The scan flow decodes an image, detects and matches a face, resolves a session, and writes an attendance record. The internal vision layer supplies detection, embeddings, and emotion analysis. The README documents broader portal capabilities; unsampled route details are represented at subsystem level rather than inferred as specific calls.

Main entry points: [`models.py`](https://github.com/manju1303/face-attendence/blob/main/models.py) (Attendance domain models), [`app.py`](https://github.com/manju1303/face-attendence/blob/main/app.py) (Flask application), [`routes/attendance.py`](https://github.com/manju1303/face-attendence/blob/main/routes/attendance.py) (Attendance kiosk API), [`routes/admin.py`](https://github.com/manju1303/face-attendence/blob/main/routes/admin.py) (Student management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_flask["Flask application<br/>[app.py]"]
  node_auth["Authentication<br/>[auth.py]"]
  node_student["Student portal<br/>[student.py]"]
  node_kiosk["Attendance kiosk API<br/>[attendance.py]"]
end

subgraph group_vision["Biometric recognition"]
  node_face["Face engine<br/>[face_engine.py]"]
  node_vision_models["CV model assets"]
end

subgraph group_records["Attendance records"]
  node_config["Application configuration<br/>[config.py]"]
  node_data[("Attendance domain models<br/>[models.py]")]
end

subgraph group_admin["Administration"]
  node_admin_students["Student management<br/>[admin.py]"]
  node_admin_attendance["Attendance audit and reports<br/>[admin.py]"]
  node_sessions["Class sessions<br/>[admin.py]"]
end

node_browser(("Student or admin"))
node_database[("SQL database")]

node_browser -->|"uses portal"| node_flask
node_flask -->|"registers routes"| node_auth
node_flask -->|"registers routes"| node_kiosk
node_flask -->|"registers routes"| node_student
node_flask -->|"registers routes"| node_admin_students
node_auth -->|"checks credentials"| node_data
node_student -->|"reads attendance"| node_data
node_kiosk -->|"analyzes image"| node_face
node_kiosk -->|"reads enrollment"| node_data
node_kiosk -->|"records check-in"| node_data
node_face -->|"loads models"| node_vision_models
node_admin_students -->|"manages students"| node_data
node_admin_students -.->|"uses biometrics"| node_face
node_admin_attendance -->|"audits records"| node_data
node_sessions -->|"manages sessions"| node_data
node_flask -->|"loads settings"| node_config
node_data -->|"persists entities"| node_database

click node_flask "https://github.com/manju1303/face-attendence/blob/main/app.py"
click node_auth "https://github.com/manju1303/face-attendence/blob/main/routes/auth.py"
click node_student "https://github.com/manju1303/face-attendence/blob/main/routes/student.py"
click node_kiosk "https://github.com/manju1303/face-attendence/blob/main/routes/attendance.py"
click node_admin_students "https://github.com/manju1303/face-attendence/blob/main/routes/admin.py"
click node_admin_attendance "https://github.com/manju1303/face-attendence/blob/main/routes/admin.py"
click node_sessions "https://github.com/manju1303/face-attendence/blob/main/routes/admin.py"
click node_face "https://github.com/manju1303/face-attendence/blob/main/services/face_engine.py"
click node_vision_models "https://github.com/manju1303/face-attendence/tree/main/models_data"
click node_config "https://github.com/manju1303/face-attendence/blob/main/config.py"
click node_data "https://github.com/manju1303/face-attendence/blob/main/models.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_flask,node_auth,node_student,node_kiosk toneBlue
class node_face,node_vision_models,node_database toneAmber
class node_config,node_data toneMint
class node_admin_students,node_admin_attendance,node_sessions toneRose
class node_browser toneIndigo
```

## Components

### Web application

- [Flask application](https://github.com/manju1303/face-attendence/blob/main/app.py): `app.py`
- [Authentication](https://github.com/manju1303/face-attendence/blob/main/routes/auth.py): `routes/auth.py`
- [Student portal](https://github.com/manju1303/face-attendence/blob/main/routes/student.py): `routes/student.py`
- [Attendance kiosk API](https://github.com/manju1303/face-attendence/blob/main/routes/attendance.py): `routes/attendance.py`

### Biometric recognition

- [Face engine](https://github.com/manju1303/face-attendence/blob/main/services/face_engine.py): `services/face_engine.py`
- [CV model assets](https://github.com/manju1303/face-attendence/tree/main/models_data): `models_data`

### Attendance records

- [Application configuration](https://github.com/manju1303/face-attendence/blob/main/config.py): `config.py`
- [Attendance domain models](https://github.com/manju1303/face-attendence/blob/main/models.py): `models.py`

### Administration

- [Student management](https://github.com/manju1303/face-attendence/blob/main/routes/admin.py): `routes/admin.py`
- [Attendance audit and reports](https://github.com/manju1303/face-attendence/blob/main/routes/admin.py): `routes/admin.py`
- [Class sessions](https://github.com/manju1303/face-attendence/blob/main/routes/admin.py): `routes/admin.py`

### Other components

- **Student or admin**
- **SQL database**

## Connections

- Student or admin → Flask application: uses portal (evidence: `README.md`)
- Flask application → Authentication: registers routes (evidence: `app.py`)
- Flask application → Attendance kiosk API: registers routes (evidence: `app.py`)
- Flask application → Student portal: registers routes (evidence: `app.py`)
- Flask application → Student management: registers routes (evidence: `app.py`)
- Authentication → Attendance domain models: checks credentials (evidence: `routes/auth.py`)
- Student portal → Attendance domain models: reads attendance (evidence: `routes/student.py`)
- Attendance kiosk API → Face engine: analyzes image (evidence: `routes/attendance.py`)
- Attendance kiosk API → Attendance domain models: reads enrollment (evidence: `routes/attendance.py`)
- Attendance kiosk API → Attendance domain models: records check-in (evidence: `routes/attendance.py`)
- Face engine → CV model assets: loads models (evidence: `services/face_engine.py`)
- Student management → Attendance domain models: manages students (evidence: `routes/admin.py`)
- Student management → Face engine: uses biometrics (evidence: `routes/admin.py`)
- Attendance audit and reports → Attendance domain models: audits records (evidence: `README.md`)
- Class sessions → Attendance domain models: manages sessions (evidence: `README.md`)
- Flask application → Application configuration: loads settings (evidence: `app.py`)
- Attendance domain models → SQL database: persists entities (evidence: `models.py`)
