This is a booking application made as part of training at IT-Academy. Application is deployed on Heroku and can be accessed via Swagger UI by this link
- There is roles for Admins, Moderators and Users based on Spring Security.
- Users should be registered and logged in to use this application.
- Users can rent a property (Clients) or host a property when renting it out (Hosts).
- Clients can rent an apartment for a certain number of days, as well as cancel the order if the date of the rental period has not come.
- Hosts can add their property and earn money by renting it out.
- Hosts should accept order for renting it out and can decline order if they need.
- Hosts can remove their property from listing without deleting it.
- Moderators ensure order in the application and can ban users and delete property or images if they violate the rules of the service.
- Moderator roles can be created only by Administrator.
- Application has schedulers to accept and finish orders automatically:
- order is accepted automatically if it was not accepted, declined or cancelled within ~5 minutes after it was placed;
- ended orders are finished automatically once a day or upon restart.
NOTE: Functionality for admins and moderators will be implemented on the later stage.
- Java 11
- Spring Boot
- Spring Data
- Spring Caches
- Spring AOP
- Spring Security with JWT Token
- PostgreSQL
- Swagger
- Unit testing (JUnit 5, AssertJ, Mockito)
- Git (obviously)
- Sonar Cloud via GitHub Actions
- Seems everything if fine.
- Fix known issues.
- Add more tests.
- Further improvement of Swagger UI documentation.
- Further improvement of application functionality.