Skip to main content
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
Attendance Management System preview screenshot

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
Attendance Management System screenshot

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.