Project Description: This is a small application exercise that implements a Project Information Management (PIM) tool using Java Spring Boot, Hibernate, H2 Database (for development), and Angular for the frontend. The project is targeted at newcomers to the .NET and Java group and focuses on two main functionalities: Project creation and updation, and Project list.
- Introduction
- Technologies Used
- Features
- Setup
- Usage
- Deployment
- Testing
- Contribution
- License
- Acknowledgements
This application exercise is designed to help newcomers in the .NET and Java group gain practical experience with Java Spring Boot, Hibernate, H2 Database, and Angular. The project implements a simple Project Information Management (PIM) tool with two main user stories: Project creation and updation, and Project list. The tool allows Project Managers to create and update projects and view a list of existing projects based on various search criteria.
The main technologies and libraries used in this project are:
- Java Spring Boot
- Hibernate
- H2 Database (for development)
- Angular (for frontend)
- Log4j
- Mapstruct
- Lombok
The application exercise implements the following features:
-
Project Creation and Updation:
- Project Managers can create new projects with attributes such as Number, Name, Customer, Group, Members, Status, Start Date, and End Date.
- Existing projects can be updated with new information.
- Validations are in place for mandatory fields, unique project numbers, valid visas, and unexpected errors.
-
Project List:
- Project Managers can view a list of projects.
- They can search for projects based on Name, Number, Customer, and Status.
- Pagination is not required in the basic level.
- Projects can be deleted if their status is "New."
To set up the development environment for this project, follow the steps below:
- Clone the repository from GitHub.
- Make sure you have Java, Node.js, and Angular CLI installed on your system.
- Install the required dependencies for both the backend (Java Spring Boot) and frontend (Angular) parts of the application.
- Set up the H2 Database for development purposes.
- Configure the necessary properties for the application.
After setting up the development environment, you can run the application locally. Here's how:
- Start the backend server (Java Spring Boot).
- Start the frontend server (Angular).
- Access the application in your web browser at
http://localhost:<port>
.
To deploy the application and make it available on the internet, follow these steps:
- Containerize the application using Docker.
- Deploy the Docker container to your desired hosting environment (e.g., AWS, Google Cloud, Azure, etc.).
- Set up a domain name and configure DNS settings to point to your deployed application.
The application exercise comes with a set of predefined test cases. To run the tests, use the testing framework specific to each part of the application (JUnit for Java Spring Boot, Karma/Jasmine for Angular).
Contributions to this project are welcome! If you find any bugs, have suggestions for improvements, or want to add new features, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License.
We would like to express our gratitude to the creators of the technologies and libraries used in this project. Their contributions have been instrumental in building this small application exercise for newcomers to the .NET and Java group.