System name : Bike Reservation System
Contributor : Romain
Licence : MIT Licence
Context : This project is a TDD Sandbox Project. I made it to gain experience with TDD. It is part of the "TDD in legacy code" series from Optivem Journal and Valentina Jemuović
A rider can book a bike for a given date and duration. He can choose the type of bike during the booking process.
A rider can change the type of bike he booked before the start of his rental period.
The admin can add a bike to the stock.
The admin can remove a bike from the stock.
System clock PostgreSQL Public API for zip code (http://api.zippopotam.us)
Monolith with templated frontnend
graph LR
A[USER] --> B[SYSTEM] --> C[ZIP CODE API]
graph TD
subgraph USER
H[USER]
end
subgraph Exrternal System
I[ZIP Code API]
end
subgraph Spring boot Service
A[Templated UI] --> B[Bookin Controller]
C[REST API] --> B
B --> DTOs
B --> D[Booking Service]
D --> E["System Clock"]
D --> Models
D --> F[Repository]
F --> G[(PostgreSQL Database)]
end
H --> A
D --> I
Java / Spring boot / Gradle / PostgreSQL
Mono-repo
Trunk Based Development
Local only (as of now)
Github Action