- Brent Simons
- Siebe Michiels
This repository contains our school project for the Enterprise Development Experience class. Our project, titled "BNBs - Bed & Breakfast Management System" is designed to demonstrate our understanding of enterprise-level application development using microservices architecture. We have implemented four microservices that collectively form a comprehensive management system for managing multiple Bed & Breakfast establishments. Our inspiration for this project came from the Bed and Breakfast owned by Brent's father.
API Name | Description | Database |
---|---|---|
Bnb | Bed and breakfast establishments | MySQL |
Room | Rooms available in a BnB establisment | MongoDB |
Reservation | Reservations made under a room | MySQL |
Person | Customers that are recorded in the system | MongoDB |
To run the project locally, follow these steps:
git clone https://github.com/BrentSimons/Project-EDE-BNB
cd Project-EDE-BNB
Build and Run Docker Containers:
docker-compose up -d
Access the Angular app at http://localhost:4200.
Angular Development Server: Navigate to the bnb-frontend folder:
cd bnb-frontend
Start the Angular development server:
ng serve
In this diagram you can see an overview of our microservices architecture
HTTP method |
Endpoint | Service | Description | Authorized | Parameters/Body |
---|---|---|---|---|---|
GET | /public/bnb?name= | Bnb | Retrieve all bnb's that have the given parameter in their name | No | name |
GET | /public/rooms/available?id= | Bnb | Retrieve all rooms from given bnbId depending on the given filters (see endpoints_examples.md) |
No | bnbId AvailableRoomRequest |
GET | /bnb/all?name= | Bnb | Same as /public/bnb?name= | Yes | name |
GET | /bnb/{id} | Bnb | Retrieve one bnb with given id |
Yes | |
POST | /bnb | Bnb | Create a new bnb | Yes | BnbRequest |
PUT | /bnb/{id} | Bnb | Update the bnb with given id |
Yes | BnbRequest |
DELETE | /bnb/{id} | Bnb | Delete the bnb with given id |
Yes | BnbRequest |
PUT | /bnb/addRoom?bnbId= &roomCode= | Bnb | Add a new room with roomCode to bnb with given bnbId |
Yes | bnbId roomCode |
PUT | /bnb/removeRoom?bnbId= &roomCode= | Bnb | Remove the room with roomCode from bnb with given bnbId |
Yes | bnbId roomCode |
GET | /public/room/available?roomCode= &months= | Room | Retrieve all periods during which a given room is available | No | roomCode months (default=1) |
GET | /room/all | Room | Retrieve all rooms | Yes | |
GET | /room/{id} | Room | Retrieve one room with given id |
Yes | |
POST | /room | Room | Create a new room, also add the room to the bnb with bnbId given in the request body |
Yes | RoomWithBnbRequest |
PUT | /room/{id} | Room | Update the room with given id |
Yes | RoomRequest |
DELETE | /room/{id}?bnbId= | Room | Delete the room with given id , also remove it from given bnbId |
Yes | bnbId |
GET | /reservation/all | Reservation | Retrieve all reservations | Yes | |
GET | /reservation/{id} | Reservation | Retrieve one reservation with given id |
Yes | |
POST | /reservation | Reservation | Create a new reservation | Yes | ReservationRequest |
PUT | /reservation/{id} | Reservation | Update the reservation with given id |
Yes | ReservationRequest |
DELETE | /reservation/{id} | Reservation | Delete the reservation with given id |
Yes | |
GET | /person/all | Person | Retrieve all persons | Yes | |
GET | /person/{id} | Person | Retrieve one person with given id |
Yes | |
POST | /person | Person | Create a new person | Yes | PersonRequest |
PUT | /person/{id} | Person | Update the person with given id |
Yes | PersonRequest |
DELETE | /person/{id} | Person | Delete the person with given id |
Yes |
For more info about our endpoints please view the file endpoint_examples.md