This tutorial will walk you through the creation of a cloud-native hotel reservation system, which includes:
- A Hotel Reservation Service developed using Java Spring Boot, Python, and Ballerina.
- A Hotel Reservation Web Application developed using ReactJS.
Before you start, make sure you have:
- GitHub Account
- Ensure you have a GitHub account. Sign up or log in here: GitHub
- Microsoft Visual Studio Code
- Download and install Visual Studio Code if not already installed: VSCode
- Install the WSO2 Ballerina plugin from the VSCode extensions marketplace.
- Git
- Install Git for version control. Follow the installation guide here: Git
- Web Browser
- A recent version of Google Chrome or Mozilla Firefox is required.
- HTTP Client
- Ballerina
- Install the latest version of Ballerina. Follow the installation instructions here: Ballerina Swan Lake
- Ensure the Ballerina VSCode extension is installed.
- Python
- Install Python 3.x from the official website: Python Downloads
- Kafka Broker
- Set up a Kafka broker. You can use the Confluent Cloud SaaS broker with a free trial: Confluent Cloud
- Azure Communication Services
- Create an account and set up Azure Communication Services. Guidance on key generation will be provided during setup. Start with a trial account here: Azure Communication Services
- Choreo Account
- Sign up for a Choreo account to integrate and deploy services efficiently.
This document outlines the necessary tools and services required to set up and run the project. Please ensure you have the following installed and configured on your workstation.
The goal is to build a reservation system for a luxury hotel that allows users to search for rooms, make reservations, and manage their bookings.
- Develop the HTTP service using Spring Boot, Python services for email communication, and Ballerina for BFF services implementation using GraphQL.
- Push the code to your GitHub account.
- Deploy the cloud-native application on Choreo, including both services and the web application.
- Implement Ballerina GraphQL for the room search catalog.
Develop an HTTP service with Java Spring Boot that includes endpoints for:
- Making reservations: Handle POST requests with user data and return a confirmation with a unique reference number.
- Listing reservations: Allow users to retrieve their booking details.
- Updating reservations: Enable modifications to existing bookings.
- Canceling reservations: Provide a way for users to cancel their bookings.
- The Python service will be designed to send email notifications related to user reservation activities. This service will interact with Azure communication services to manage the dispatch of emails.
Develop a reservation platform for a premium hotel establishment.
Create a web application that enables hotel guests to book rooms.
- Guests can search for rooms by check-in and check-out dates, with a filter for the number of guests.
- Search results will display a list of room types, each with a "Reserve" button.
- Guests must provide personal information to book a room.
- The "Reserve" button is enabled after all fields are filled in correctly, and a unique reference number is provided upon reservation.
- Guests can view and manage their reservations after logging in.
- Options to update or cancel the reservation are provided for each booking.
- Guests can modify any part of their reservation.
- Guests can cancel their reservations easily through the booking system.