Skip to content

Yosefnago/ems-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏢 Employee Management System (EMS) - Full Stack

A comprehensive, modular Full-Stack application designed for managing human resources, employee life cycles, and organizational workflows. This system is built with a focus on security, scalability, and real-time updates.


📍 Quick Navigation


📖 Project Overview

The system provides a robust platform for administrators to manage employees, track attendance, handle salary calculations, and monitor system-wide activity through a sleek Dashboard.


📂 Repository Structure

EMS-SYSTEM (Root)
│
├── 📂 emp-backend          # The core logic powered by Java 25 and Spring Boot
│   ├── 📂 src
│   │   └── 📂 main
│   │       └── 📂 resources
│   │           └── 📄 data.sql    # Automatically seeds the database with initial data
│   └── 📄 Dockerfile
│
├── 📂 Emp-frontend         # The user interface built with Angular 20
│   ├── 📂 src
│   └── 📄 Dockerfile
│
└── 📄 docker-compose.yml   # Orchestration file to spin up the entire stack

Tech Stack

Backend (Spring Boot)

Java 25 & Spring Boot 4.0.1

PostgreSQL

Spring Security & JWT (Stateless Auth)

Spring Data JPA & Hibernate

WebSocket & STOMP (Real-time events)

Lombok

Maven (Dependency Management)

Frontend (Angular)

Angular 20

TypeScript

RxJS

Angular Material

SCSS

Nginx (Production Serving)

Getting Started (How to Use)

Prerequisites Docker and Docker Compose installed on your machine.

Git installed.

Execution Steps Clone the repository:

git clone https://github.com/Yosefnago/ems-system.git
cd ems-system

Launch the System: Run the following command in the root directory:

docker compose up --build

Access the Application:

Frontend: Open http://localhost in your browser.

Features

Authentication & Security

  • Stateless JWT Architecture: Implemented a secure authentication flow where the server issues a JSON Web Token upon successful login to manage session-less security.
  • Custom @CurrentUser Annotation: Developed a custom Spring Security annotation to inject the authenticated User entity directly into controller methods, enhancing code maintainability.
  • WebSocket Security: Integrated JWT validation into the STOMP handshake, ensuring real-time status updates are restricted to authorized sessions.

Employee Lifecycle & Data Integrity

  • Full CRUD Operations: Comprehensive management of employee records including personal profiles, department assignments, and contact details.
  • Soft Delete (Archiving): Implemented an archiving system instead of permanent deletion. This preserves historical data for audit compliance while removing records from active views.
  • Data Validation: Server-side constraints prevent duplicate personal IDs and email addresses, maintaining database consistency.

Dashboard & Real-time Insights

  • Live Statistics: Aggregated data visualization providing a distribution of employees by department and employment status.
  • Automated Reminders: Logic-driven alerts for upcoming employee birthdays and organizational events.
  • Activity Stream: A real-time feed displaying the most recent system modifications and administrative actions.

Activity Logging & Audit Trails

  • Action Tracking: Every administrative operation, such as adding or updating employee data, is captured within a dedicated audit log.
  • Log Metadata: Each entry records the acting user, the specific action type (ADD, UPDATE, ARCHIVE), and a precise timestamp for accountability.

Salary Management

  • Payroll Logic: Supports complex financial calculations including hourly rates, base salaries, and overtime compensation.
  • Social Benefits: Integrated calculations for pension contributions and bonuses to provide a full overview of labor costs.
  • Report Generation: Data structures are optimized for the generation of salary slips and monthly payroll summaries.

WebSockets & Communication

  • Status Monitoring: Live monitoring of server health and event triggers via the /server-status endpoint.
  • Reduced Latency: Utilizes STOMP protocol to push instant updates from the backend to the Angular frontend, eliminating the need for client-side polling.

Contribution & Support

Contributions are welcome! If you want to contribute:

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.

Found a bug? If you encounter any issues or have suggestions for improvements, please feel free to open an Issue on the GitHub repository.

📬 Contact Developed by Yosef Nago * GitHub: github.com/Yosefnago

Email: yosinago5@gmail.com

About

Full-stack Employee Management System using Spring Boot 4, Angular 20, and Docker.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors