# prakashmadhok706-spec/face-recognition-system architecture

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

- Interactive diagram: https://gitdiagram.com/prakashmadhok706-spec/face-recognition-system
- Repository: https://github.com/prakashmadhok706-spec/face-recognition-system

## Overview

CoopSync AI is a cooperative education ERP and employment platform. A user enters the web app, selects an attendance, student, learning, certification, or employment workflow, and receives records or recommendations through the FastAPI backend. Attendance has distinct biometric and QR verification paths, with offline records synchronized later. The backend also exposes analytics and an AI advisor over ERP information. The README documents these capabilities and module boundaries; unsampled route implementations limit certainty about some individual UI-to-backend connections.

Main entry points: [`CoopSyncAI/frontend/src/App.tsx`](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/App.tsx) (Application shell), [`CoopSyncAI/frontend/src/api.ts`](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/api.ts) (API client), [`CoopSyncAI/backend/main.py`](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/main.py) (REST API), [`CoopSyncAI/frontend/src/components/FaceAttendanceView.tsx`](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/FaceAttendanceView.tsx) (Face attendance)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_app["Application shell<br/>[App.tsx]"]
  node_faceui["Face attendance"]
  node_qrui["QR attendance"]
  node_studentui["Student ERP<br/>[StudentERPView.tsx]"]
  node_coursesui["Courses and programmes<br/>[CoursesView.tsx]"]
  node_certui["Certificates"]
  node_employmentui["Employment portal<br/>[EmploymentView.tsx]"]
  node_analyticsui["Analytics dashboard<br/>[AnalyticsView.tsx]"]
  node_chatui["AI advisor<br/>[AIChatModal.tsx]"]
end

subgraph group_backend["ERP API"]
  node_api["API client<br/>[api.ts]"]
  node_routes["REST API<br/>[main.py]"]
end

subgraph group_domain["Domain services"]
  node_face["Face recognition<br/>[face_engine.py]"]
  node_qr["QR verification<br/>[qr_engine.py]"]
  node_cert["Certificate generation"]
  node_ai["AI matching and chat<br/>[ai_engine.py]"]
end

subgraph group_state["ERP state"]
  node_dbmodel["ERP data models<br/>[database.py]"]
  node_db[("ERP database<br/>[coopsync.db]")]
end

node_user(("Student or staff"))

node_user -->|"uses"| node_app
node_app -->|"selects"| node_faceui
node_app -->|"selects"| node_qrui
node_app -->|"selects"| node_studentui
node_app -->|"selects"| node_coursesui
node_app -->|"selects"| node_certui
node_app -->|"selects"| node_employmentui
node_app -->|"selects"| node_analyticsui
node_app -->|"selects"| node_chatui
node_faceui -->|"requests"| node_api
node_qrui -->|"requests"| node_api
node_studentui -->|"requests"| node_api
node_coursesui -->|"requests"| node_api
node_certui -->|"requests"| node_api
node_employmentui -->|"requests"| node_api
node_analyticsui -->|"requests"| node_api
node_chatui -->|"requests"| node_api
node_api -->|"sends requests"| node_routes
node_routes -->|"recognizes faces"| node_face
node_routes -->|"verifies tokens"| node_qr
node_routes -->|"generates PDFs"| node_cert
node_routes -->|"requests matching"| node_ai
node_routes -->|"queries and updates"| node_dbmodel
node_dbmodel -->|"persists records"| node_db
node_app -->|"syncs offline records"| node_api

click node_app "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/App.tsx"
click node_faceui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/FaceAttendanceView.tsx"
click node_qrui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/QRAttendanceView.tsx"
click node_studentui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/StudentERPView.tsx"
click node_coursesui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/CoursesView.tsx"
click node_certui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/CertificatesView.tsx"
click node_employmentui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/EmploymentView.tsx"
click node_analyticsui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/AnalyticsView.tsx"
click node_chatui "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/AIChatModal.tsx"
click node_api "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/api.ts"
click node_routes "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/main.py"
click node_face "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/face_engine.py"
click node_qr "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/qr_engine.py"
click node_cert "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/certificate_engine.py"
click node_ai "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/ai_engine.py"
click node_dbmodel "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/database.py"
click node_db "https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/coopsync.db"

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_app,node_faceui,node_qrui,node_studentui,node_coursesui,node_certui,node_employmentui,node_analyticsui,node_chatui toneBlue
class node_api,node_routes toneAmber
class node_face,node_qr,node_cert,node_ai toneMint
class node_dbmodel,node_db toneRose
class node_user toneIndigo
```

## Components

### Web application

- [Application shell](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/App.tsx): `CoopSyncAI/frontend/src/App.tsx`
- [Face attendance](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/FaceAttendanceView.tsx): `CoopSyncAI/frontend/src/components/FaceAttendanceView.tsx`
- [QR attendance](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/QRAttendanceView.tsx): `CoopSyncAI/frontend/src/components/QRAttendanceView.tsx`
- [Student ERP](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/StudentERPView.tsx): `CoopSyncAI/frontend/src/components/StudentERPView.tsx`
- [Courses and programmes](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/CoursesView.tsx): `CoopSyncAI/frontend/src/components/CoursesView.tsx`
- [Certificates](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/CertificatesView.tsx): `CoopSyncAI/frontend/src/components/CertificatesView.tsx`
- [Employment portal](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/EmploymentView.tsx): `CoopSyncAI/frontend/src/components/EmploymentView.tsx`
- [Analytics dashboard](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/AnalyticsView.tsx): `CoopSyncAI/frontend/src/components/AnalyticsView.tsx`
- [AI advisor](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/components/AIChatModal.tsx): `CoopSyncAI/frontend/src/components/AIChatModal.tsx`

### ERP API

- [API client](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/frontend/src/api.ts): `CoopSyncAI/frontend/src/api.ts`
- [REST API](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/main.py): `CoopSyncAI/backend/main.py`

### Domain services

- [Face recognition](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/face_engine.py): `CoopSyncAI/backend/face_engine.py`
- [QR verification](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/qr_engine.py): `CoopSyncAI/backend/qr_engine.py`
- [Certificate generation](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/certificate_engine.py): `CoopSyncAI/backend/certificate_engine.py`
- [AI matching and chat](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/ai_engine.py): `CoopSyncAI/backend/ai_engine.py`

### ERP state

- [ERP data models](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/database.py): `CoopSyncAI/backend/database.py`
- [ERP database](https://github.com/prakashmadhok706-spec/face-recognition-system/blob/main/CoopSyncAI/backend/coopsync.db): `CoopSyncAI/backend/coopsync.db`

### Other components

- **Student or staff**

## Connections

- Student or staff → Application shell: uses
- Application shell → Face attendance: selects
- Application shell → QR attendance: selects
- Application shell → Student ERP: selects
- Application shell → Courses and programmes: selects
- Application shell → Certificates: selects
- Application shell → Employment portal: selects
- Application shell → Analytics dashboard: selects
- Application shell → AI advisor: selects
- Face attendance → API client: requests
- QR attendance → API client: requests
- Student ERP → API client: requests
- Courses and programmes → API client: requests
- Certificates → API client: requests
- Employment portal → API client: requests
- Analytics dashboard → API client: requests
- AI advisor → API client: requests
- API client → REST API: sends requests
- REST API → Face recognition: recognizes faces
- REST API → QR verification: verifies tokens
- REST API → Certificate generation: generates PDFs
- REST API → AI matching and chat: requests matching
- REST API → ERP data models: queries and updates
- ERP data models → ERP database: persists records
- Application shell → API client: syncs offline records
