Skip to content

ezekiellemana/Employee-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Employee Management System (EMS) πŸš€

EMS Logo

Welcome to Employee Management System πŸŽ‰

The Employee Management System (EMS) is a cutting-edge, full-stack web application designed to streamline employee data management for organizations. Built with a modern React.js frontend and a powerful Spring Boot backend, EMS ensures efficiency, scalability, and a seamless user experience.


πŸ“Œ Table of Contents


🌟 Overview

The Employee Management System is designed for organizations looking to manage employee records efficiently. It allows HR personnel to perform CRUD operations (Create, Read, Update, Delete) on employee records while managing departments and user roles seamlessly.

  • 🎯 Purpose: Efficient and scalable employee data management
  • πŸ‘₯ Target Audience: HR departments, SMEs, developers learning full-stack development
  • πŸ”– Version: 1.0.0

πŸ”₯ Key Features

βœ… Employee Management: Add, update, view, and delete employees βœ… Department Management: Assign and manage employee departments βœ… User Roles & Authentication: Secure access control with authentication & authorization βœ… Intuitive UI: Clean and user-friendly interface with responsive design βœ… Robust Backend: Built with Spring Boot for scalable API handling βœ… Real-time Data Validation: Ensure data integrity using client-side and server-side validation βœ… RESTful API: Well-documented, secure endpoints for seamless frontend-backend interaction βœ… Logging & Error Handling: Proper logging system and user-friendly error messages βœ… Mobile-Friendly: Fully responsive design for all devices


πŸ—οΈ Technical Stack

Frontend (React.js)

  • Framework: React.js (Vite for development speed)
  • UI Styling: Bootstrap, CSS3
  • State Management: Context API
  • HTTP Requests: Axios
  • Routing: React Router

Backend (Spring Boot)

  • Framework: Spring Boot 3.4.4
  • Database: MySQL
  • ORM: Spring Data JPA with Hibernate
  • Security: Spring Security (expandable with JWT)
  • Dependency Management: Maven

Development & Tools

  • Version Control: Git & GitHub
  • IDE: IntelliJ IDEA / VS Code
  • Testing: JUnit, Postman for API testing

πŸ› System Architecture

[Frontend] -- React.js, Bootstrap, Axios
   |
   v
[Backend] -- Spring Boot (JPA, Hibernate, REST API)
   |
   v
[Database] -- MySQL

System Architecture


⚑ Installation Guide

Prerequisites βœ…

πŸš€ Quick Start

1️⃣ Clone the Repository

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

2️⃣ Backend Setup

cd backend
./mvnw spring-boot:run

3️⃣ Frontend Setup

cd frontend
npm install
npm run dev

4️⃣ Open in Browser

Go to: http://localhost:3000


πŸ›  Usage Guide

  1. Sign in as an admin or HR personnel.
  2. Navigate to Employee Dashboard.
  3. Manage Employees: Create, view, update, delete records.
  4. Assign Departments to employees.
  5. Logout securely after managing data.

πŸ“‘ API Documentation

The API follows RESTful principles:

  • GET /employees - Retrieve all employees
  • POST /employees - Create a new employee
  • PUT /employees/{id} - Update an employee record
  • DELETE /employees/{id} - Delete an employee
  • GET /departments - Retrieve all departments

For full API documentation, visit: /api/docs (Swagger UI)


πŸ“‚ Project Structure

ems-project/
β”œβ”€β”€ frontend/          # React-based frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/    # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ services/      # API service calls
β”‚   β”‚   β”œβ”€β”€ App.jsx       # Main application component
β”‚   β”‚   β”œβ”€β”€ index.js      # Entry point
β”‚   └── package.json      # Frontend dependencies
β”œβ”€β”€ backend/           # Spring Boot backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”‚   β”œβ”€β”€ java/
β”‚   β”‚   β”‚   β”‚   └── net/emsapp/ems_backend/
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ controller/    # REST controllers
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ dto/          # Data transfer objects
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ entity/       # Database entities
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ exception/    # Custom exceptions
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ mapper/       # Object mapping utilities
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ repository/   # JPA repositories
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ service/      # Business logic
β”‚   β”‚   β”‚   └── resources/            # Configuration files
β”‚   β”‚   └── test/                     # Unit tests
β”‚   └── pom.xml                       # Maven build file
β”œβ”€β”€ README.md
└── .gitignore

πŸ”§ Development Guidelines

  • Follow clean code principles
  • Use feature branching for Git workflow
  • Commit messages should be clear & concise

πŸ“ License

This project is HAS NO licensed under ANY ORGANISATION

πŸš€ Roadmap

  • Implement JWT Authentication
  • Add Role-based Access Control
  • Improve UI/UX with Material-UI
  • Implement GraphQL API

🀝 Contributors

πŸ”Ή Ezekiel Lemana - Project Lead, Backend Developer, Frontend Developer


πŸ“ž Support & Contact

Need help? Feel free to reach out: πŸ“§ Email: ezekielaugustino@gmail.com πŸ“Έ Instagram: Enzo_leman10 πŸ› Report Issues: GitHub Issues


🎯 Your feedback makes me better! πŸš€

About

Employee Management System with React Frontend and Spring Boot Backend

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published