AI-powered smart attendance system using Face Recognition, Voice Biometrics, and Computer Vision for modern classrooms.
AttendAI is an AI-powered attendance system built to reduce manual attendance work and limit proxy attendance in classrooms.
The repository contains two parts:
Main-Project-Model/— Main Streamlit app for student and teacher workflows.Landing-Page/— Flask landing page for product presentation.
Teachers can create subjects, share enrollment codes, take attendance from classroom photos, use voice attendance, and review records. Students can register with FaceID, optionally enroll voice profiles, join subjects, and track attendance.
- 👤 Student FaceID login and registration
- 🎤 Optional student voice enrollment
- 👨🏫 Teacher registration and password login
- 📚 Subject creation and management
- 🔗 Enrollment via subject code or join link
- 📸 Face-based attendance from classroom photos
- 🗣️ Voice-based attendance using speaker embeddings
- 📊 Attendance history and subject-wise stats
- ☁️ Supabase PostgreSQL cloud storage
- 🌐 Separate public landing page
| Category | Technologies |
|---|---|
| Frontend App | Streamlit |
| Landing Page | Flask, HTML, CSS, JavaScript |
| Database | Supabase PostgreSQL |
| Face Recognition | dlib, face_recognition_models |
| Machine Learning | scikit-learn, numpy, pandas |
| Voice Biometrics | Resemblyzer, librosa |
| Security | bcrypt, Streamlit secrets |
| Deployment | Streamlit Cloud, Vercel |
AttendAI/
├── README.md
├── Main-Project-Model/
│ ├── app.py
│ ├── requirements.txt
│ ├── README.md
│ ├── .streamlit/
│ └── src/
│ ├── components/
│ ├── database/
│ ├── pipelines/
│ ├── screens/
│ └── ui/
└── Landing-Page/
├── app.py
├── requirements.txt
├── vercel.json
├── templates/
└── static/
├── css/
├── fonts/
├── img/
└── js/
---
# 🧩 Main Application (`Main-Project-Model`)
The main application is developed using **Streamlit** and provides separate workflows for **Students** and **Teachers**.
## 📂 Important Files
```text
Main-Project-Model/
├── app.py # Streamlit entry point
├── src/screens/home_screen.py # Home Screen
├── src/screens/student_screen.py # Student Dashboard
├── src/screens/teacher_screen.py # Teacher Dashboard
├── src/database/config.py # Supabase Configuration
├── src/database/db.py # Database Operations
├── src/pipelines/face_pipeline.py # Face Recognition Pipeline
└── src/pipelines/voice_pipeline.py # Voice Recognition Pipeline
git clone https://github.com/yourusername/AttendAI.gitcd AttendAIpython -m venv venv
venv\Scripts\activatepython3 -m venv venv
source venv/bin/activatecd Main-Project-Model
pip install -r requirements.txtcd Landing-Page
pip install -r requirements.txtCreate
Main-Project-Model/.streamlit/secrets.toml
Add
SUPABASE_URL="your_supabase_url"
SUPABASE_KEY="your_supabase_key"The application automatically reads these credentials during startup.
cd Main-Project-Model
streamlit run app.pyRuns on
http://localhost:8501
cd Landing-Page
python app.pyRuns on
http://localhost:5002
AttendAI combines Computer Vision and Voice Biometrics to automate attendance.
Capture Classroom Image
│
▼
Face Detection
│
▼
Face Alignment
│
▼
128-D Face Encoding
│
▼
SVM Classification
│
▼
Recognized Student
│
▼
Attendance Marked
- OpenCV
- dlib
- face_recognition_models
- scikit-learn
Audio Recording
│
▼
Noise Removal
│
▼
Voice Embedding
│
▼
Similarity Matching
│
▼
Speaker Verification
│
▼
Attendance Marked
- Resemblyzer
- librosa
- webrtcvad
AttendAI uses Supabase PostgreSQL.
Main tables used:
| Table | Purpose |
|---|---|
| teachers | Teacher Accounts |
| students | Student Profiles |
| subjects | Course Information |
| subject_students | Student Enrollment |
| attendance_logs | Attendance Records |
Open Streamlit App
│
▼
Student Login
│
▼
Capture Face
│
▼
Recognized?
│ │
Yes No
│ │
Dashboard Register Face
│
▼
Join Subject
│
▼
Track Attendance
Teacher Login
│
▼
Create Subject
│
▼
Generate Enrollment Code
│
▼
Students Join
│
▼
Upload Classroom Image
│
▼
Face / Voice Attendance
│
▼
Attendance Reports
AttendAI follows industry-standard security practices to protect user data and biometric information.
- 🔑 Teacher passwords are securely hashed using bcrypt
- 👤 Face embeddings are stored instead of raw face images
- 🎤 Voice authentication uses speaker embeddings rather than raw recordings
- 🔐 Environment variables and Streamlit Secrets are used for sensitive credentials
- Secure Supabase PostgreSQL database
- Encrypted cloud communication
- Role-based access (Student & Teacher)
- Biometric authentication for enhanced security
AttendAI is designed to be scalable. Upcoming features include:
- 🛡️ Face Liveness Detection
- 🚫 Proxy Attendance Detection
- 📈 Student Risk Prediction
- 📊 Classroom Engagement Score
- 📉 Attendance Trend Prediction
- 🧠 AI Attendance Insights
- 📑 Automatic Attendance Reports
- 💬 AI Teaching Assistant
- Mobile Application
- QR Attendance
- NFC Attendance
- Offline Attendance Support
- Cloud Synchronization
- Multi-Institute Support
- Parent Portal
- Student Notifications
- Teacher Performance Dashboard
- Attendance Heatmaps
- Student Attendance Analytics
- Department-wise Reports
- Monthly Attendance Reports
- Export to Excel & PDF
The Streamlit application can be deployed on:
- Streamlit Community Cloud
- Render
- Railway
- VPS
- Docker
The landing page can be deployed on:
- Vercel
- Render
- Railway
- Netlify (Static Version)
Verify:
Main-Project-Model/.streamlit/secrets.toml
Contains:
SUPABASE_URL="your_url"
SUPABASE_KEY="your_key"- Allow browser camera permissions
- Close applications using the webcam
- Restart the application
- Capture high-quality images
- Ensure good lighting
- Avoid multiple faces during registration
- Re-register if necessary
- Speak clearly
- Reduce background noise
- Re-enroll voice samples
Windows:
pip install dlib-binpip install torch --index-url https://download.pytorch.org/whl/cpuUnlike traditional attendance systems, AttendAI combines:
- 🤖 Artificial Intelligence
- 👁️ Computer Vision
- 🎤 Voice Biometrics
- ☁️ Cloud Computing
- 📊 Data Analytics
to provide a secure, intelligent, and automated attendance solution for educational institutions.
Contributions are welcome.
-
Fork the repository
-
Create a new branch
git checkout -b feature-name- Commit your changes
git commit -m "Added new feature"- Push the branch
git push origin feature-name- Open a Pull Request
If you found this project useful,
please consider giving it a ⭐ on GitHub.
It motivates future improvements and open-source development.
This project is released under the MIT License.
Feel free to use, modify, and distribute it for educational and research purposes.
Built with ❤️ by Sumit Jaiswal
⭐ If you like this project, don't forget to star the repository!





