Skip to content

Employee Management System Capstone Project (final), This project showcase core features for enterprise-level management of employees.

Notifications You must be signed in to change notification settings

engripaye/ems-capstone-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Error in user YAML: (<unknown>): found character that cannot start any token while scanning for the next token at line 1 column 1
---
````markdown
# 🏢 Employee Management System (EMS Capstone Project)

[![Java](https://img.shields.io/badge/Java-17-blue)](https://www.oracle.com/java/)
[![Spring Boot](https://img.shields.io/badge/SpringBoot-3.x-brightgreen)](https://spring.io/projects/spring-boot)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15-blue)](https://www.postgresql.org/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## 📌 Overview
The **Employee Management System (EMS)** is a **capstone project** that demonstrates enterprise-grade backend development using **Java (Spring Boot)** and **PostgreSQL**.  
It provides core features for managing employees, departments, roles, payrolls, and leave workflows, with a **secure, scalable, and modular architecture**.  

This project is designed to showcase **backend engineering, database design, authentication & authorization, and enterprise-level application development** skills.

---

✨ Features

✅ Employee registration & profile management
✅ Role-based access control (ADMIN, MANAGER, EMPLOYEE)
✅ Department & role management
✅ Payroll management (salary, bonuses, deductions)
✅ Leave request & approval workflow
✅ Authentication & Authorization with Spring Security (JWT-based)
✅ RESTful APIs with Swagger documentation
✅ PostgreSQL persistence with JPA/Hibernate
✅ Dockerized setup for easy deployment


🛠️ Tech Stack

  • Languages: Java 17
  • Frameworks: Spring Boot 3.x, Spring Security, Hibernate/JPA
  • Database: PostgreSQL 15
  • Build Tool: Maven
  • API Testing: Postman, Swagger UI
  • DevOps Tools: Docker, Docker Compose
  • Version Control: Git & GitHub

📂 Project Structure

ems-capstone-project/
│── src/main/java/com/ems/         # Source code
│   ├── controller/                # REST controllers
│   ├── service/                   # Business logic
│   ├── repository/                # Data access (Spring Data JPA)
│   ├── model/                     # Entities (Employee, Role, Department, Payroll, Leave)
│   └── security/                  # Authentication & Authorization
│
│── src/main/resources/
│   ├── application.properties     # Configuration (DB, security, etc.)
│   └── data.sql                   # Sample seed data
│
│── docker-compose.yml             # Containerized setup
│── pom.xml                        # Maven dependencies
│── README.md                      # Documentation

⚡ Getting Started

1️⃣ Clone the repository

git clone https://github.com/engripaye/ems-capstone-project.git
cd ems-capstone-project

2️⃣ Configure the database

Update src/main/resources/application.properties with your PostgreSQL credentials:

spring.datasource.url=jdbc:postgresql://localhost:5432/ems_db
spring.datasource.username=postgres
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update

3️⃣ Run with Maven

mvn spring-boot:run

4️⃣ Access APIs


🚀 Docker Setup (Optional)

# Build and run with Docker Compose
docker-compose up --build

📖 API Examples

🔐 Authentication

POST /api/v1/auth/login
{
  "username": "admin",
  "password": "admin123"
}

👤 Create Employee (ADMIN only)

POST /api/v1/employees
{
  "firstName": "John",
  "lastName": "Doe",
  "email": "[email protected]",
  "departmentId": 1,
  "roleId": 2,
  "salary": 5000.00
}

👥 Contribution

Contributions are welcome!

  1. Fork the repo
  2. Create a new branch (feature/awesome-feature)
  3. Commit your changes
  4. Push and create a Pull Request

📜 License

This project is licensed under the MIT License – see the LICENSE file for details.


🙌 Acknowledgements



---

⚡ This README makes your project look **professional, enterprise-ready, and recruiter/ATS friendly**.  

Do you want me to also **design a PostgreSQL database schema (tables + relationships)** for the EMS project so you can include it as a diagram in the repo and README?

About

Employee Management System Capstone Project (final), This project showcase core features for enterprise-level management of employees.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages