VisionSync is a cutting-edge, secure attendance tracking solution that leverages AI Facial Recognition, Dynamic QR Codes, and Geo-fencing to eliminate proxy attendance and ensure 100% verification accuracy.
- 🤖 AI Facial Verification: High-precision face recognition using
dlibandface_recognitionto ensure the correct student is present. - 📍 Smart Geo-fencing: GPS-based location validation ensures attendance can only be marked within the classroom perimeter (radius-controlled).
- 🔗 Dynamic QR Sessions: Faculty-generated unique session tokens with automated expiration to prevent link sharing.
- 📱 Device Fingerprinting: Security measure to bind attendance marking to specific student devices.
- 📊 Data Insights & Export: Comprehensive faculty dashboard with real-time logs and ZIP/CSV export capabilities (including captured verify images).
graph TD
A[Faculty Generates QR] --> B[Student Scans QR]
B --> C{Geo-fence Check}
C -- Within Radius --> D{Face Verification}
C -- Outsider --> E[Access Denied]
D -- Match Found --> F[Marked Present]
D -- Face Failure --> G[Manual Review Flag]
F --> H[Attendance Saved to SQLite]
H --> I[Faculty Exports ZIP Report]
- Backend: Python / Flask
- Computer Vision: OpenCV, Face Recognition, NumPy
- Database: SQLite (SQLAlchemy)
- Frontend: HTML5, Vanilla CSS, JavaScript
- Security: Geolocation API, Session Handlers, QR Code Generation
This project is optimized for deployment on Render.com using Docker.
- Create a Render Account: Sign up at render.com.
- New Web Service: Click "New" > "Web Service" and connect your GitHub repository.
- Configuration:
- Runtime:
Docker(Render should detect theDockerfileautomatically) - Plan:
Free
- Runtime:
- Environment Variables: The app uses port
10000by default. - Database: The app uses SQLite (
attendance.db). Since Render's free tier has an ephemeral disk, your database will reset on every redeploy. To keep data permanently, you can upgrade to a Render "Persistent Disk" or use an external PostgreSQL database.
git clone https://github.com/yourusername/attendance-tracking-system.git
cd attendance-tracking-systempython -m venv venv
source venv/bin/scripts/activate # On Windows: venv\Scripts\activatepip install -r requirements.txtImportant
To use facial recognition, ensure you have CMake and C++ Build Tools installed on your system.
pip install face_recognition opencv-python-headless- Login: Use faculty credentials.
- Create Session: Click "Generate QR Code", set the radius (e.g., 50m), and specify the subject.
- Show QR: Display the generated QR code on the projector.
- Monitor: View live updates as students mark their attendance.
- Export: Once the session expires, download the ZIP report containing CSV and verification images.
- Dashboard: Register your face encoding during the first-time setup.
- Scan: Scan the classroom QR code using the mobile dashboard.
- Verify: The system will check your GPS location and ask for a quick face scan.
- Success: Once verified, your attendance is logged instantly.
- Database: The system uses
attendance.dbby default. - Service Worker: PWA support included for offline-first dashboard accessibility (
static/sw.js). - Demo Users: Default test users are created on first run (
faculty1,student1).
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for Secure Education Tracking