Elevate Institutional Efficiency with a state-of-the-art geo-fenced QR attendance ecosystem. Secure, instant, and architected for scale.
The Attendance Management System (AMS) is a robust, enterprise-grade solution designed to eliminate attendance fraud and automate academic tracking. Leveraging Geo-fencing validation and Dynamic HMAC-signed QR codes, it ensures that students are physically present in the classroom during the scan.
- Admin Orchestration: High-level control over Users (Faculty/Students), Batches, and Global subjects. Access to critical Audit Logs for security forensic analysis.
- Faculty Command Center: Real-time session generation with customizable geo-fencing radius and dynamic QR rotating engine.
- Student Portal: Seamless mobile-first scanning experience with automated location verification and attendance history tracking.
- Geo-Fencing Validation: Pinpoint GPS accuracy checks to prevent off-site scanning.
- Dynamic QR Engine: Self-rotating QR codes prevent session reuse and unauthorized photo-sharing.
- HMAC Signing: All QR data is cryptographically signed with a limited TTL (Time-To-Live).
- Audit Logging: Comprehensive traceability for every sensitive action performed within the system.
| Layer | Technology |
|---|---|
| Backend | Python 3.x, Django 4.2+ |
| Database | MySQL / MariaDB (Optimized with utf8mb4) |
| Frontend | HTML5 (Semantic), Vanilla CSS (Custom Design System), JS (ES6+) |
| QR Engine | qrcodejs (JS Client-side Generation) |
| Analytics | Chart.js for real-time visualization |
graph TD
A[Student Mobile] -->|Scan QR + GPS| B(Django API)
C[Teacher Dashboard] -->|Generate Signed QR| B
B -->|Verify Location| D[(MySQL Database)]
B -->|Check Token TTL| D
E[Admin Dashboard] -->|Monitor Audit Logs| D
B -->|Response| A
# Clone and enter
git clone https://github.com/AnilYadav17/Attendance-Management-System.git
cd Attendance-Management-System
# Initialize Virtual Env
python -m venv venv
# Activate Virtual Env
# For Windows:
venv\Scripts\activate
# For Linux/macOS:
source venv/bin/activate
# Install Dependencies
pip install -r requirements.txt- Create a MySQL database named
attendance_db1. - Configure your credentials in
.env:
DB_USER=your_user
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=3306
SECRET_KEY=generate_a_secure_key# Apply migrations
python manage.py migrate
# Initialize Superuser
python manage.py createsuperuser
# Launch Platform
python manage.py runserver├── attendance_management_system/ # Core Application Logic
│ ├── migrations/ # Database Schema Evolutions
│ ├── static/ # Premium CSS & JS Assets
│ ├── templates/ # Modular HTML Architecture
│ └── settings.py # System Configuration
├── media/ # Generated QR & Branded Assets
├── manage.py # CLI Gateway
└── requirements.txt # Dependency Manifest
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Developed with ❤️ by Anil Yadav
