It is my main project which I'm still developing, it is a Spring web car rental application, that provides REST API for communication and MVC pattern. The data is stored in a relational database which is accessed through JPA/Hibernate. The application is divided into client, employee, and administrator layers, thanks to which I increase its security. The main security features of the application are the use of DTOs, Spring Validation, and the most important Spring Security, which is responsible for user authentication.
- As a customer of a rental company we can register, login, dynamically filter available cars, rent a car, manage rentals, edit rentals and account details, delete account
- As an employee we can manage a calendar of rentals, control the current status of the rental, edit car data, receive and give cars to customers with the creation of reports of issuance and return report.
- As an administrator we can add new cars and assign them to rental branches, manage employees, add new employees, generate monthly reports. I created the front-end layer using Thymeleaf and Bootstrap.
Live app: https://good-cars.herokuapp.com/
DONE ✔ | IN PROGRESS ❗ |
---|---|
• Design project architecture | • Management panel view for employee |
• Implement REST API | • Management panel view for admin |
• Create dynamically cars filter | • Add car image |
• Implement ModelViewController | • Add maps with marker to rental view |
• Create site layout | • Confirm registration by email link with JWT |
• Create site views | • Fix some bugs |
• Implement pagination | |
• Add Spring Security | |
• Implement login | |
• Implement register | |
• Add Spring Validation | |
• Implement User stuff | |
• Add email sender | |
• Add bug report |
- Open project with InteliJ, go to: src/main/java/com/car/rental/Application.java -> right click to Application.java -> Run 'Application.main()'
- Open CarRentalv1.1-main folder -> Open command line and type: mvn spring-boot:run
- Open the app at:
Application will start on http://localhost:8080
- REST API
- ModelViewController
- CRUD
- DTO
- Dynamic entity search
- Project patterns like Builder
- Custom validators
- Application logs
- Clean code
- Integration tests
Tech & framework used |
---|
• Java 11 |
• Spring Framework (MVC, Data JPA, Security, Validation) |
• Spring Boot |
• Hibernate/JPA |
• H2Database/SQL |
• Criteria API |
• JUnit |
• Flyway |
• MapStruct |
• Thymeleaf |
• Bootstrap (HTML/CSS) |