Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vista Tech — Employee Leave Management System (ELMS)

Vista Tech ELMS is a full-stack, enterprise-grade Employee Leave Management System built using Spring Boot 3.3.2 (Java 21 LTS) and Angular 17 (Standalone Components) with MySQL 8.4 LTS.


Application Screenshots & Visual Showcase

1. Sign-In Screen

Screenshot 2026-08-17 090618

2. HR Admin Control Center & Quota Overview

Screenshot 2026-08-17 090644

3. Manager Dashboard

Screenshot 2026-08-17 090715

4. Interactive Working Day Leave Application Form

Screenshot 2026-08-17 090735

Live Production URLs

Component Platform URL / Location
Live Web App (Frontend) Vercel https://elms-snowy.vercel.app
Live REST API (Backend) Render https://elms-mhk7.onrender.com/api
Cloud MySQL 8.4 Database Aiven defaultdb
Source Code Repository GitHub https://github.com/ganesh805/ELMS.git

Database Artifacts


API Documentation


Key Features & Capstone Requirements

  • Vista Tech Corporate UI: Custom modern dark glassmorphism design system integrated with official Vista Tech branding.
  • Dynamic Working Day Engine (Rule 1): Calculates net leave duration by excluding Saturdays, Sundays, and registered company public holidays automatically.
  • Leave Overlap Prevention (Rule 2): Rejects double-booking leave dates for the same employee.
  • Quota & Balance Enforcement (Rule 3): Validates remaining leave balance prior to request submission.
  • Manager Approval Workflow (Rule 6 & 7): Managers review pending team applications, submit feedback comments, and trigger automatic balance deductions upon approval.
  • HR Administrative Control Panel: HR Admins can create user accounts, edit details, assign line managers, override yearly quotas, configure leave categories (with soft delete), and register company holidays.
  • Asynchronous Email Notifications: Non-blocking @Async notifications sent upon leave submission, approval, or rejection.
  • Spring Security & JWT Authentication: Stateless authentication with HMAC-SHA384 JWT tokens and BCrypt password encryption (PDF §15 Headline Bonus Achieved).
  • Interactive API Documentation: Swagger UI specs accessible at http://localhost:8080/swagger-ui/index.html.

Technology Stack & Versions

  • Backend: Java 21 LTS, Spring Boot 3.3.2, Spring Data JPA, Spring Security, JJWT 0.12.5, Lombok, Slf4j.
  • Frontend: Angular 17 (Standalone Components, RxJS, TypeScript 5, Custom Glassmorphism Design System).
  • Database: MySQL 8.4 LTS (elms_db).
  • Build Tools: Apache Maven (mvnw.cmd), Angular CLI (@angular/cli@17).

Execution & Run Commands

1. Database Setup (MySQL 8.4)

Create local database:

CREATE DATABASE elms_db;

Configure database credentials in backend/src/main/resources/application-local.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/elms_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=12345

2. Run Backend (Spring Boot 3.3.2)

Open a terminal in the backend directory and run:

cd backend
.\mvnw.cmd spring-boot:run
  • REST API Base URL: http://localhost:8080/api
  • Swagger UI: http://localhost:8080/swagger-ui/index.html

3. Run Frontend (Angular 17 SPA)

Open a separate terminal in the frontend directory and run:

cd frontend
npm start
  • Application URL: http://localhost:4200

Initial Baseline System Admin Account

Upon initial application startup, the system automatically initializes a clean baseline HR Admin account:

  • Email: admin@elms.com
  • Password: admin123
  • Role: HR_ADMIN

(Log in as HR Admin to create employee/manager accounts and assign line managers via the /admin/users UI).


Note on Access-Control Simplification & Security Architecture

In accordance with capstone requirements:

  • The system supports both Header-Based Authorization (X-User-Id) for lightweight role/ownership checks and Spring Security JWT Authentication with BCrypt password hashing (Headline Bonus Goal).
  • Backend service layers enforce strict ownership and reporting-line checks so managers cannot approve requests outside their direct report hierarchy, and employees cannot modify another user's leave applications.

Running Automated Tests

  • Backend Unit & Integration Tests:
    cd backend
    .\mvnw.cmd test
  • Frontend Angular Build Verification:
    cd frontend
    npx ng build

Complete Project Documentation Index

  • docs/learning-log.md: Commit-by-commit development and concept log across all 30 commits.
  • docs/viva-preparation.md: Top 50 viva Q&As and live coding refactoring tasks.
  • docs/architecture.md: System architecture, tech stack, and layered design.
  • docs/api.md: Complete REST API contract specification.
  • docs/database.md: MySQL 8.4 schema dictionary and ERD diagram.
  • docs/business-rules.md: Core business rules & validation logic.
  • docs/capstone-project-report.md: Final capstone project completion report.
  • docs/candidate-declaration.md: Signed Appendix A Candidate Declaration for Karanam Ganesh.

About

Employee Leave Management System (ELMS) - Java 21 Spring Boot 3 & Angular Capstone Project.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages