Project about creating a time booking system that can work under high load, and allows a randomized selection of the winner among numerous bookings.
- Java 21
- Spring Boot 3
- Spring Web
- Spring Security (Oauth2)
- Spring Data Redis
- Docker
- Lombok
- Thymeleaf
- jQuery
- Js-cookie
- WebJars Bootstrap
- Webjars-locator core
- Display a list of available time slots.
- Allow users to book a time slot.
- Implement a random selection mechanism to confirm bookings among multiple users.
Redisfor storing data about time slots and booked users.Spring Bootfor creating the backend.GitHub OAuthfor user authentication.
- Redis sets are used to store users who have made bookings.
- Slots are sorted by time.
- A randomizer is implemented to select a winner among users booking the same slot.
- Authentication and API interaction are simplified using Spring Security's built-in features.