This is a custom ERP HR application made for project interview using Java Spring Boot.
This project was initially made for interviewing purposes as an assignment requested by the interviewer. The assignment consists of several parts modules and features to be implemented such as csv file upload, database table realisation, CRUD application and others. Spring Boot was chosen for this project for development with maven.
- Java Spring Boot
- Microservices
- Making sure any VPN is turned off.
- Clone the project using GIT command:
git clone https://github.com/jasonakon/hr_management_system.git hr_management_system_jason_lim_git
- Import the project directly using IntelliJ.
- Wait for the IDE to index all the required files and dependencies.
- Head to SalaryManagementApplication and right-click and choose Run 'SalaryManageme...main()'
- Wait for the application to run and you shall see the last log showing :
Started SalaryManagementApplication in 5.562 seconds (JVM running for 6.088)
- The application will be hosted at http://localhost:8080/
- Making sure docker is installed : https://docs.docker.com/get-docker/
- Download the docker binary image : https://1drv.ms/u/s!AoK0vXAOFQ_CkGrI1iVNpN1nO2l-?e=e758Co
- Run the command to load the binary image:
docker load -i hr_management_system_docker.tar
- View the loaded docker binary image:
docker images
- Run the docker binary application:
docker run -p 8080:8080 hr_management
- The application will be hosted at http://localhost:8080/
- Making sure maven is installed : https://maven.apache.org/install.html
- Navigate to your repository
cd hr_management_system_jason_lim_git
- Build the application using maven
mvn clean package
- Run the application using java
java -jar target/hr-0.0.1-SNAPSHOT.jar
- The application will be hosted at http://localhost:8080/
- Make sure your application is running.
- Head to this url if you hosted in localhost : http://localhost:8080/h2-console
- Fill up the configuration of H2:
- Save Setting : Generic H2 (Embedded)
- Setting Name : Generic H2 (Embedded)
- Driver Class : org.h2.Driver
- JDBC URL : jdbc:h2:mem:hr_management_db
- User Name : admin
- Password : admin
- Click connect and you're set !
Referring to the folder path src/main/resources/csv contains a list of csv test files which used for requirement validation. A README.txt file is attached as well.
I been using postman for testing the application including file uploads and all the CRUD functionality.
You can find a collection of requests i used for testing here : https://www.getpostman.com/collections/9d77113fd0fea581be74
A list of unit test has been written to test each of the service functionality including controller as well.
- Broader test cases for the csv input file
- More option for the PUT request whereby record can be directly changed by only specifying individual field value
- More filtering / sorting feature for the GET request
These improvement may be optional for the assignment requirement but it is manageable to be implemented with given more time. However, this application alone handled numberous edge exceptions from users invalid inputs to processing.
Please feel free to contact me if you encountered any issue:
Email : jasonakon@gmail.com
OR drop an issue in the repostiory. Thank you!