0% found this document useful (0 votes)
1 views2 pages

Employee Management System

The Employee Management System project aims to develop a Spring Boot application featuring user management, CRUD operations for employees, departments, and projects, as well as CSV file uploads and JWT-based security. It will utilize JPA for database interactions and establish entity relationships, with PostgreSQL or MySQL for data persistence. Deliverables include source code on GitHub, API documentation, SQL scripts, and test coverage reports.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views2 pages

Employee Management System

The Employee Management System project aims to develop a Spring Boot application featuring user management, CRUD operations for employees, departments, and projects, as well as CSV file uploads and JWT-based security. It will utilize JPA for database interactions and establish entity relationships, with PostgreSQL or MySQL for data persistence. Deliverables include source code on GitHub, API documentation, SQL scripts, and test coverage reports.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Project Title: Employee Management System

Objective: The goal of this project is to provide hands-on experience in developing a Spring
Boot application that demonstrates CRUD operations, database management, JWT-based
security, and file uploads (CSV). The project will include JPA for database interaction and entity
relationships representing one-to-many and many-to-many mappings.

Scope of Work: Develop an Employee Management System with the following functionalities:

1. User Management
○ Register/Login users with roles (Admin/User) using JWT-based authentication.
○ Implement role-based access control (RBAC).
○ Secure endpoints using JWT tokens.
○ Setup Swagger endpoints for API documentation
2. CRUD Operations
○ Implement CRUD operations for the following entities:
■ Employee (Basic Details)
■ Department
■ Project
3. Entity Relationships
○ One-to-Many: One Department can have multiple Employees.
○ Many-to-Many: An Employee can be assigned to multiple Projects, and a Project
can have multiple Employees.
4. CSV Upload
○ Develop functionality to upload employee and project data via CSV files.
○ Validate and parse CSV files.
○ Persist CSV data to the database, establishing appropriate relationships
(one-to-many, many-to-many).
5. API Endpoints
○ User Management:
■ POST /api/auth/register - Register a new user
■ POST /api/auth/login - Authenticate and retrieve JWT token
○ Employee Management:
■ GET /api/employees - Retrieve all employees
■ GET /api/employees/{id} - Get employee by ID
■ POST /api/employees - Create new employee
■ PUT /api/employees/{id} - Update employee details
■ DELETE /api/employees/{id} - Delete employee
○ Department Management:
■ GET /api/departments - Retrieve all departments
■ POST /api/departments - Create new department
○ Project Management:
■ GET /api/projects - Retrieve all projects
■ POST /api/projects - Create new project
○ CSV Upload:
■ POST /api/upload/employees - Upload employee data via CSV
■ POST /api/upload/projects - Upload project data via CSV
6. Database
○ Use PostgreSQL or MySQL for data persistence.
○ Configure and manage schema using JPA and Hibernate.
7. Testing
○ Implement unit tests for service and controller layers.
○ Use Mockito or similar frameworks to mock dependencies.

Technical Stack:

● Backend: Java 21, Spring Boot 3.x


● Database: PostgreSQL/MySQL
● Security: JWT (JSON Web Token)
● ORM: JPA, Hibernate
● Build Tool: Maven/Gradle
● Testing: JUnit, Mockito
● Tools: Postman, Swagger (for API documentation)

Deliverables:

1. Source code hosted on GitHub.


2. API documentation using Swagger.
3. SQL scripts to initialize database schema.
4. Test coverage report.
5. CSV sample files for data upload.

Learning Outcomes:

● Spring Boot fundamentals (CRUD operations, JPA, and security).


● Database schema design and entity relationships.
● JWT-based authentication and RBAC.
● Handling file uploads and parsing CSV files.
● Writing and executing unit tests.

You might also like