Project overview
Attendance Management System
QR-based web system for a secure lecturer–student attendance management. A web-based attendance platform built with Java (JSP/Servlet) and MySQL. Lecturers create sessions and generate dynamic QR codes for secure check-in. Students scan, submit attendance, and manage leave requests through dedicated dashboards.
Java 17
JSP & Servlets
Maven
MySQL
Docker
Render
TiDB
Demo credentials (quick access)
Lecturer Email: noor.aini@umt.edu.my
Lecturer Password: password123
(Check lecturer ✔)
Student Email: S72812
Student Password: pass123
(Demo credentials are for evaluation purposes only.)
Problem statement
- Manual attendance tracking is time-consuming and prone to errors.
- Static QR codes can be shared, allowing proxy attendance.
- There was no centralized workflow for leave requests and approval.
- The system addresses these gaps with secure session-based tracking.
Key features
- Dynamic QR code generation per session
- Duplicate scan prevention
- Role-based dashboards (Lecturer / Student)
- Manual attendance override for absentees
- Leave request submission with image upload
- Leave approval / rejection workflow
- Session-level attendance reporting
System architecture
Architecture pattern
Layered MVC architecture
Flow
JSP (View) → Servlet (Controller) → DAO (Repository) → MySQL
Controller Layer
- Handles HTTP requests
- Validates input
- Delegates to DAO
Repository Layer (DAO)
- Executes SQL queries
- Manages database connections
Engineering decisions & lessons learned
- Chose layered MVC for clarity and maintainability.
- Used Servlets instead of a full framework to strengthen core Java EE understanding.
- Implemented dynamic QR refresh to prevent attendance spoofing.