# krishna-murthy-prog/eduvision_pro_project--2---1- architecture

> Architecture diagram of the GitHub repository krishna-murthy-prog/eduvision_pro_project--2---1-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/krishna-murthy-prog/eduvision_pro_project--2---1-
- Repository: https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-

## Overview

EduVision Pro is a Streamlit attention-monitoring app. An operator starts a camera session; the app captures frames, detects faces and eyes, scores attention, and displays live status and a score chart. It retains recent observations, optionally writes a live CSV, and on session end creates a summary and session report, which can be emailed through Gmail automatically or on demand. The runtime is implemented in one sampled file; the graph separates its responsibilities rather than implying separate modules.

Main entry points: [`EduVision_Pro_Project/app.py`](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py) (Streamlit UI), [`EduVision_Pro_Project/reports`](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/tree/main/EduVision_Pro_Project/reports) (Session CSV), [`EduVision_Pro_Project/config.json`](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/config.json) (Mail Configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_capture["Capture and Analysis"]
  node_streamlit_ui["Streamlit UI<br/>[app.py]"]
  node_capture_loop["Video Capture<br/>[app.py]"]
  node_vision["Face and Eye Detection<br/>[app.py]"]
  node_attention["Attention Scoring<br/>[app.py]"]
end

subgraph group_session["Session Reporting"]
  node_history["Session History<br/>[app.py]"]
  node_live_csv[("Live CSV")]
  node_report[("Session CSV")]
  node_summary["Session Summary<br/>[app.py]"]
end

subgraph group_delivery["Report Delivery"]
  node_config["Mail Configuration<br/>[config.json]"]
  node_mailer["Gmail Sender<br/>[app.py]"]
end

node_operator(("Operator"))
node_camera(("Webcam"))
node_gmail{{"Gmail SMTP"}}

node_operator -->|"controls session"| node_streamlit_ui
node_streamlit_ui -->|"starts or stops"| node_capture_loop
node_capture_loop -->|"reads frames"| node_camera
node_streamlit_ui -->|"reads frames"| node_capture_loop
node_streamlit_ui -->|"processes frame"| node_vision
node_vision -->|"provides detections"| node_attention
node_streamlit_ui -->|"appends observations"| node_history
node_streamlit_ui -->|"writes observations"| node_live_csv
node_streamlit_ui -->|"computes counts"| node_summary
node_streamlit_ui -->|"writes session CSV"| node_report
node_streamlit_ui -->|"requests email"| node_mailer
node_mailer -->|"reads settings"| node_config
node_mailer -->|"attaches CSV"| node_report
node_mailer -->|"sends message"| node_gmail

click node_streamlit_ui "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py"
click node_capture_loop "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py"
click node_vision "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py"
click node_attention "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py"
click node_history "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py"
click node_live_csv "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/tree/main/EduVision_Pro_Project/reports"
click node_report "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/tree/main/EduVision_Pro_Project/reports"
click node_summary "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py"
click node_config "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/config.json"
click node_mailer "https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.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_streamlit_ui,node_capture_loop,node_vision,node_attention toneBlue
class node_history,node_live_csv,node_report,node_summary toneAmber
class node_config,node_mailer toneMint
class node_operator,node_camera,node_gmail toneIndigo
```

## Components

### Capture and Analysis

- [Streamlit UI](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py): `EduVision_Pro_Project/app.py`
- [Video Capture](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py): `EduVision_Pro_Project/app.py`
- [Face and Eye Detection](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py): `EduVision_Pro_Project/app.py`
- [Attention Scoring](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py): `EduVision_Pro_Project/app.py`

### Session Reporting

- [Session History](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py): `EduVision_Pro_Project/app.py`
- [Live CSV](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/tree/main/EduVision_Pro_Project/reports): `EduVision_Pro_Project/reports`
- [Session CSV](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/tree/main/EduVision_Pro_Project/reports): `EduVision_Pro_Project/reports`
- [Session Summary](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py): `EduVision_Pro_Project/app.py`

### Report Delivery

- [Mail Configuration](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/config.json): `EduVision_Pro_Project/config.json`
- [Gmail Sender](https://github.com/krishna-murthy-prog/eduvision_pro_project--2---1-/blob/main/EduVision_Pro_Project/app.py): `EduVision_Pro_Project/app.py`

### Other components

- **Operator**
- **Webcam**
- **Gmail SMTP**

## Connections

- Operator → Streamlit UI: controls session
- Streamlit UI → Video Capture: starts or stops
- Video Capture → Webcam: reads frames
- Streamlit UI → Video Capture: reads frames
- Streamlit UI → Face and Eye Detection: processes frame
- Face and Eye Detection → Attention Scoring: provides detections
- Streamlit UI → Session History: appends observations
- Streamlit UI → Live CSV: writes observations
- Streamlit UI → Session Summary: computes counts
- Streamlit UI → Session CSV: writes session CSV
- Streamlit UI → Gmail Sender: requests email
- Gmail Sender → Mail Configuration: reads settings
- Gmail Sender → Session CSV: attaches CSV
- Gmail Sender → Gmail SMTP: sends message
