Skip to content

pavel-kuropatin/Zen-Booking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zen Booking

Lines of Code Quality Gate Status Reliability Rating Security Rating Maintainability Rating Duplicated Lines (%) Code Smells Vulnerabilities Bugs

Project description:

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

Application features:

  1. There is roles for Admins, Moderators and Users based on Spring Security.
  2. Users should be registered and logged in to use this application.
  3. Users can rent a property (Clients) or host a property when renting it out (Hosts).
  4. 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.
  5. Hosts can add their property and earn money by renting it out.
  6. Hosts should accept order for renting it out and can decline order if they need.
  7. Hosts can remove their property from listing without deleting it.
  8. Moderators ensure order in the application and can ban users and delete property or images if they violate the rules of the service.
  9. Moderator roles can be created only by Administrator.
  10. 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.

Technology stack:

  • 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

Known issues:

  1. Seems everything if fine.

TODO:

  1. Fix known issues.
  2. Add more tests.
  3. Further improvement of Swagger UI documentation.
  4. Further improvement of application functionality.