Skip to content

Sumitjaiswal9334/AttendAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

🤖 AttendAI : Future of Smart Attendance

AI-powered smart attendance system using Face Recognition, Voice Biometrics, and Computer Vision for modern classrooms.

AttendAI Homepage


📌 Project Overview

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.


✨ Main Features

  • 👤 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

🛠️ Tech Stack

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

📁 Repository Structure

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

⚙️ Installation

1️⃣ Clone Repository

git clone https://github.com/yourusername/AttendAI.git
cd AttendAI

2️⃣ Create Virtual Environment

Windows

python -m venv venv
venv\Scripts\activate

Linux / macOS

python3 -m venv venv
source venv/bin/activate

3️⃣ Install Dependencies

Main Application

cd Main-Project-Model
pip install -r requirements.txt

Landing Page

cd Landing-Page
pip install -r requirements.txt

🔐 Supabase Configuration

Create

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.


▶️ Run the Application

Streamlit App

cd Main-Project-Model

streamlit run app.py

Runs on

http://localhost:8501

Landing Page

cd Landing-Page

python app.py

Runs on

http://localhost:5002

🧠 AI Pipeline

AttendAI combines Computer Vision and Voice Biometrics to automate attendance.


📸 Face Recognition Pipeline

Capture Classroom Image
          │
          ▼
Face Detection
          │
          ▼
Face Alignment
          │
          ▼
128-D Face Encoding
          │
          ▼
SVM Classification
          │
          ▼
Recognized Student
          │
          ▼
Attendance Marked

Technologies Used

  • OpenCV
  • dlib
  • face_recognition_models
  • scikit-learn

🎤 Voice Recognition Pipeline

Audio Recording
        │
        ▼
Noise Removal
        │
        ▼
Voice Embedding
        │
        ▼
Similarity Matching
        │
        ▼
Speaker Verification
        │
        ▼
Attendance Marked

Technologies Used

  • Resemblyzer
  • librosa
  • webrtcvad

🗄️ Database

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

🔄 Student Workflow

Open Streamlit App
        │
        ▼
Student Login
        │
        ▼
Capture Face
        │
        ▼
Recognized?
   │          │
 Yes         No
   │          │
Dashboard   Register Face
      │
      ▼
Join Subject
      │
      ▼
Track Attendance

🔄 Teacher Workflow

Teacher Login
      │
      ▼
Create Subject
      │
      ▼
Generate Enrollment Code
      │
      ▼
Students Join
      │
      ▼
Upload Classroom Image
      │
      ▼
Face / Voice Attendance
      │
      ▼
Attendance Reports


🔒 Security

AttendAI follows industry-standard security practices to protect user data and biometric information.

Authentication

  • 🔑 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

Data Protection

  • Secure Supabase PostgreSQL database
  • Encrypted cloud communication
  • Role-based access (Student & Teacher)
  • Biometric authentication for enhanced security

🚀 Future Enhancements

AttendAI is designed to be scalable. Upcoming features include:

🤖 AI Features

  • 🛡️ Face Liveness Detection
  • 🚫 Proxy Attendance Detection
  • 📈 Student Risk Prediction
  • 📊 Classroom Engagement Score
  • 📉 Attendance Trend Prediction
  • 🧠 AI Attendance Insights
  • 📑 Automatic Attendance Reports
  • 💬 AI Teaching Assistant

📱 Platform Features

  • Mobile Application
  • QR Attendance
  • NFC Attendance
  • Offline Attendance Support
  • Cloud Synchronization
  • Multi-Institute Support
  • Parent Portal
  • Student Notifications

📊 Analytics Dashboard

  • Teacher Performance Dashboard
  • Attendance Heatmaps
  • Student Attendance Analytics
  • Department-wise Reports
  • Monthly Attendance Reports
  • Export to Excel & PDF

📦 Deployment

Main Application

The Streamlit application can be deployed on:

  • Streamlit Community Cloud
  • Render
  • Railway
  • VPS
  • Docker

Landing Page

The landing page can be deployed on:

  • Vercel
  • Render
  • Railway
  • Netlify (Static Version)

🐛 Troubleshooting

Supabase Credentials Not Found

Verify:

Main-Project-Model/.streamlit/secrets.toml

Contains:

SUPABASE_URL="your_url"

SUPABASE_KEY="your_key"

Camera Not Working

  • Allow browser camera permissions
  • Close applications using the webcam
  • Restart the application

Face Not Recognized

  • Capture high-quality images
  • Ensure good lighting
  • Avoid multiple faces during registration
  • Re-register if necessary

Voice Authentication Failed

  • Speak clearly
  • Reduce background noise
  • Re-enroll voice samples

dlib Installation Error

Windows:

pip install dlib-bin

Torch Installation Error

pip install torch --index-url https://download.pytorch.org/whl/cpu

📸 Project Screens

🏠 Homepage

👨‍🎓 Student Login

👨‍🏫 Teacher Dashboard

📸 Face Attendance

🎤 Voice Attendance


💡 Why AttendAI?

Unlike 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.


🤝 Contributing

Contributions are welcome.

  1. Fork the repository

  2. Create a new branch

git checkout -b feature-name
  1. Commit your changes
git commit -m "Added new feature"
  1. Push the branch
git push origin feature-name
  1. Open a Pull Request

👨‍💻 Author

Sumit Jaiswal


⭐ Support

If you found this project useful,

please consider giving it a ⭐ on GitHub.

It motivates future improvements and open-source development.


📄 License

This project is released under the MIT License.

Feel free to use, modify, and distribute it for educational and research purposes.


🤖 AttendAI

The Future of Smart Attendance

Built with ❤️ by Sumit Jaiswal

⭐ If you like this project, don't forget to star the repository!

About

AttendAI is an AI-powered attendance system built to reduce manual attendance work and limit proxy attendance in classrooms.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages