Speaker: Azadur
Lab Final Presentation · 2026

Employee Attendance System

A Full-Stack Attendance Management Platform

Md Azadur Rahman  ·  Rakib Hossain  ·  Aduri Akter IDs: 4478  ·  4056  ·  4032
Next.js 16 NestJS 11 PostgreSQL Prisma ORM React 19 TypeScript Docker
Overview

Project Overview

A web-based application that automates and digitizes employee attendance tracking, leave management, shift scheduling, and reporting for organizations.

Purpose

Replace manual paper-based attendance registers with an accurate, real-time digital system. Reduce administrative workload by 60–70%.

Goals

Provide transparent leave management, automated notifications, real-time dashboards, and role-based access control (Admin, Manager, Employee).

BrowserUser
→
Next.jsFrontend
→
NestJSREST API
→
PostgreSQLDatabase
Team

Team & Roles

MA

Md Azadur Rahman

Student ID: 4478
Software Engineering
RH

Rakib Hossain

Student ID: 4056
System Administration
AA

Aduri Akter

Student ID: 4032
QA Engineer
Tech Stack

Technology Stack

Modern, battle-tested tools chosen for reliability, developer experience, and production readiness.

Frontend
Next.js 16
App Router, SSR, Code Splitting
React 19 + TypeScript
Component UI with type safety
Tailwind CSS + shadcn/ui
Responsive design system
Backend & Infrastructure
NestJS 11
Modular REST API framework
PostgreSQL 16 + Prisma
Relational DB with type-safe ORM
JWT + bcrypt + Docker
Auth security & containerized deploy
Requirements

Functional Requirements

  • Authentication & Authorization — JWT in HTTP-only cookies, role-based guards (Admin, Manager, Employee), session validation
  • Employee & Shift Management — CRUD for employees and shifts, activate/deactivate accounts, assign shifts
  • Attendance Tracking — Check-in/check-out, status tracking (present, late, half-day, absent, on-leave, holiday)
  • Leave Workflow — Submit leave requests, admin/manager review (approve/reject), leave history & balance tracking
  • Reports & Dashboard — Today KPIs, monthly attendance summaries, chart visualizations, analytics
Quality Attributes

Non-Functional Requirements

Performance

API response < 500ms. Optimized queries via Prisma. Lazy-loaded frontend with Next.js code splitting.

Security

HTTP-only cookie JWT. Password hashing with bcrypt. RBAC guards. CORS & input validation (class-validator).

Scalability

Dockerized deployment. Stateless API design. Database migrations with Prisma. Modular NestJS architecture.

Usability

Responsive UI (mobile + desktop). Intuitive navigation. Accessible forms with validation feedback.

Reliability

Automated DB migrations on deploy. Error handling at API & UI level. Seed data for consistent testing.

Maintainability

Modular codebase. TypeScript throughout. Clean separation of concerns. Comprehensive README & SRS docs.

User Flow

How It Works

A simple 6-step workflow from employee onboarding to attendance reporting

1

Create Account

Admin adds employee and assigns a shift

→
2

Login

Employee logs in with email and password

→
3

Check In

Click check-in when arriving at work

→
4

Check Out

Click check-out when leaving work

→
5

Leave Request

Submit leave, admin approves or rejects

→
6

Reports

Dashboard shows real-time analytics

Status is calculated automatically based on shift time and grace minutes — Present, Late, Half-Day, or Absent.

Diagrams

Use Case Diagram

Actor interactions with system functions across all roles

Diagrams

Class Diagram

Domain models, attributes, and relationships between entities

Application Screens

Dashboard & Employees

Dashboard
📊 Dashboard — KPIs & Overview
Employees
👥 Employees — Management
Application Screens

Attendance & Leave

Attendance
🕐 Attendance — Check-in / Check-out
Leave
📅 Leave — Requests & Approvals
Application Screens

Shifts & Reports

Shift
🔄 Shifts — Schedule Management
Reports
📈 Reports — Analytics & Charts
Testing

Testing Strategy

Unit Testing

Individual service methods tested in isolation. NestJS jest specs for auth, attendance, and leave services. Mocked dependencies.

Integration Testing

API endpoint testing with supertest. Real database interactions via Prisma. Auth flow, attendance check-in/out, leave review cycles.

System Testing

End-to-end workflow validation across all roles (Admin, Manager, Employee). UI responsiveness checks. Manual testing with seed data.

Jest Supertest Postman Seed Data (36 users)
Challenges

Challenges & Solutions

Problem JWT authentication across frontend and backend with cookie-based sessions and CORS configuration
Solution Implemented HTTP-only cookie strategy with Passport JS, proper CORS credentials, and session validation endpoint (/auth/me)
Problem Complex role-based access control across multiple user types with different permissions
Solution Built NestJS custom guards and decorators for RBAC, with role-aware frontend routing and conditional UI rendering
Problem Dockerized deployment with automated database migrations and environment configuration
Solution Created entrypoint script that runs prisma migrate deploy on startup. Externalized config via .env files and Docker Compose
Demo & Source

Live Demo & Source Code

The system is fully deployed and accessible online.

Live Application

Deployed and running in production

Open Live App
attendance.azadur.com.bd

Source Code

Full codebase on GitHub

View on GitHub
github.com/iazadur/employee-attendance
Conclusion

Conclusion & Future Work

Summary

Built a production-grade attendance management system with secure auth, role-based access, attendance tracking, leave workflow, shift management, reporting dashboards, and a modern responsive UI.

Future Improvements

  • Biometric device integration
  • Payroll & salary calculation module
  • Multi-organization tenancy support
  • Push notifications (email/SMS)
  • Mobile app (React Native)
  • Geo-fenced check-in

Thank You!

Questions & Discussion Welcome