Skip to content

A serverless Restaurant Table Reservation App for Halifax restaurants, on cloud using GCP & AWS services, for scalability, security, and cost-efficiency. Featuring Customer, Partner, and Admin apps with modules for Sign Up & Login, Reservations, Chatbot, and innovative components like dual deployment, email notifications, and regular data refresh.

Notifications You must be signed in to change notification settings

Zain-Saiyed/FoodVaganza-Serverless-Restaurant-table-reservation-application-using-GCP-AWS

Repository files navigation

FoodVaganza - Serverless Restaurant table reservation application

A serverless Restaurant Table Reservation App for Halifax restaurants, on the cloud, using GCP & AWS services, for scalability, security, and cost-efficiency. Featuring Customer, Partner, and Admin apps with modules for Sign Up & Login, Reservations, Chatbot, and innovative components like dual deployment, email notifications, and regular data refresh.

Cloud Deployment Model: Multi-Cloud [AWS, GCP]

Deployment URL:

Service Link
CloudRun https://foodvaganza-sdp8-np22x3otfa-ue.a.run.app/
Netlify https://main--serverless-sdp8-production.netlify.app/

Technology Used:

Cloud Providers:

AWS Google Cloud

AWS Services:

Amazon DynamoDB AWS Lambda AWS Step Functions Amazon EventBridge Amazon Simple Notification Service AWS API Gateway

GCP Services:

Google Cloud Firestore Google BigQuery Looker Cloud Functions Firebase

Frontend Development:

React Vite

Deployment & Hosting:

Netlify Google Cloud Run

Other Tools:

Visual Studio Code GitHub Postman Docker Git NPM-Package Manager

Application Architecture:

Application Architecture

Overview:

This project is a Restaurant table reservation application tailored for Halifax, Nova Scotia's vibrant restaurant scene. Built atop the robust Google Cloud Platform (GCP) and Amazon Web Services (AWS) serverless architecture, this application prioritizes scalability, security, and cost-effectiveness. It consists of three core elements - the Customer App, Partner App, and Admin App - each meticulously designed with Frontend, Backend Services, Database, Authentication, and APIs for seamless functionality. Various features include User Authentication, Restaurant-Menu item Listings, and Reservation Management, empowering users to book, edit, delete, and visualize reservations easily. Moreover, it also includes Chatbot functionality and Notifications for enhanced user engagement. Upholding data integrity and security standards, the app leverages Google FireStore, implements role-based access control, Personally Identifiable Information (PII) encryption, and Firebase Authentication. Throughout development, collaboration is fostered using Git for version control, ensuring a smooth deployment via Continuous Integration/Continuous Deployment (CI/CD) pipelines.

Application Components:

  1. Customer App: This application is designed for customers to view restaurant information, its menu items, and reserve tables at restaurants.
  2. Partner App: Restaurants Owners/Partners will utilize this application to manage restaurant and menu item attributes and access their table reservations/booking information.
  3. Admin App: Super admins will utilize this application to oversee and analyze the overall usage and performance of the platform.

Essential Layers:

  1. Frontend: Developed using React, Vite, and Chakra UI to create a responsive and visually appealing web application.

  2. Backend Services: Utilizing serverless solutions such as AWS Lambda, and GCP Cloud Functions for seamless and efficient task management.

  3. Database:
    a. Dynamic Content (GCP Firestore): Utilizing Firestore, a flexible NoSQL database provided by Google Cloud Platform, for managing dynamic content like real-time updates of restaurant and reservation data.

    b. Structured Attribute Data Storage (Amazon DynamoDB): Leverage Amazon DynamoDB to store attribute content related to menu items, customer reviews, and other structured data.

    c. Media Storage (Amazon S3): Store restaurant and menu images efficiently by utilizing Amazon S3 buckets, providing a reliable and scalable solution for media storage in the cloud.

  4. Authentication: Leveraging Firebase Authentication for user authentication purposes.

  5. APIs: Utilizing Amazon API Gateway to effectively handle RESTful APIs.

Data Storage and Security:

  1. Reservation Data Security: Google Firestore securely stores reservation data, employing role-based access control for data protection.
  2. Encryption for PII: Personally Identifiable Information (PII) is encrypted, ensuring robust security measures.
  3. Secure User Authentication: Firebase Authentication is implemented to ensure secure user access and authentication.

Development Workflow and Practices:

  1. Version Control: Collaborative development is facilitated through version control systems like Git, enabling efficient teamwork and code management.
  2. CI/CD Pipelines: Utilizing Continuous Integration/Continuous Deployment (CI/CD) pipelines for seamless and automated deployment in stages, streamlining the development process.
  3. Agile software development: Regular commits to Git repositories every week. The sprint duration is 4 weeks.

Feature Components/Modules:

A high-level overview of the various feature components categorized under the respective user applications, outlining different sprints for task completion.

Customer App

  1. Sign Up & Login Module:

    • Using EmailID & Password
    • Using Google Single Sign-On
  2. List of all Restaurants

    • View all restaurants filtered by opening and closing hours
    • Display the Restaurant homepage with all restaurant attributes
    • View menu item details of restaurants on the homepage
    • Display maximum discounted offer banner on restaurant pages.
  3. Book, edit, delete, view a reservation

    • Book a reservation based on the restaurant's opening and closing hours
    • View customer bookings
    • Edit bookings (condition: allowed only 1 hour before the reservation time)
    • Delete bookings (condition: allowed only 1 hour before the reservation time)
  4. Book, edit, delete, view menu for a reservation

    • Display menu items based on their current availability in the restaurant
    • Reserve a table without ordering any menu item from the restaurant menu
  5. Chatbot

    • Interact and display Restaurant availability time, location, and menu availability information.
    • Display reservation availability.
    • Submit a review about the restaurant and/or its menu items
    • Book a reservation
  6. Notifications

    • Notify customer when a new Restaurant is opened (condition: every 1 hour)
    • Notify customer about successful reservation (condition: before 30 minutes of reservation time)
    • Notify customer about menu item changes if any done by the restaurant
    • Notify customers about the restaurant's closure due to special reasons.

Partner App

  1. Sign Up & Login Module

    • Using EmailID & Password
    • Using Google Single Sign-On
  2. Restaurant details and add, view and edit menu items

    • Add/Create a new restaurant under Partner
    • Add restaurant availability, open time, close time, reservation table capacity, and other restaurant attributes.
    • Edit existing restaurant attributes.
    • Declare open or closed status of restaurant by partner
    • Upload and update the image of the Restaurant banner & Menu items
    • Edit and Delete menu item attributes
    • Provide/Apply offers at the restaurant level or menu-item level.
    • Apply menu-item-specific discount percentage
    • Display offer type-specific slashed prices for each menu item.
  3. View, edit, and delete a reservation

    • View bookings made by the customer
    • Edit or delete bookings (condition: 1 hour before reservation time)
    • Approve/Reject reservation
  4. Holistic View

    • View the number of tables booked in intervals daily, weekly, and monthly views
  5. Chatbot

    • Get booking information for day/week/month, open time, and other restaurant attributes.
    • Edit restaurant-level attributes
    • Read ratings, cancel or edit a reservation with menu items.
  6. Notifications

    • Notify about new reservations booked, modified or deleted
    • Notify about reservations booked with menu item (condition: before 1 hour of reservation time)
    • Notify if tables are overbooked and notify top 3 menu items mostly nooked every 4 hours

Admin App

  1. Login Module
    • Using EmailID & Password
    • Using Google Single Sign-On
  2. Visualisations:
    • Statistic Views
    • The top 10 food items ordered across restaurants
    • The top 10 restaurants that have the most orders
    • The top 10 customers who have ordered the most
    • The top 10 periods when the food is most ordered
    • Reviews filtered based on restaurant names

Application RoadMap (Flowcharts)

1. User Authentication

User Authentication-1

Figure : Sign Up Flow

User Authentication-2

Figure : Sign In Flow

User Authentication-3

Figure : Change password flow

User Authentication-4

Figure : Delete Account Flow

User Authentication-5

Figure : Reset Password Flow

User Authentication-6

Figure : Google Sign In Flow

2. List of Restaurants

List of Restaurants-1

Figure : View all restaurants and a restaurant homepage – flowchart

3. Book, Edit, Delete View Reservation

Book, Edit, Delete View Reservation-1

Figure : reserve table flowchart

4. Edit, Delete, View Menu

Edit, Delete, View Menu-1

Figure : Edit restaurant, menu items functionality & image upload flow chart

5. Add, Remove menu items

Add, Remove menu-items-1

Figure : Add menu item flowchart

6. Chatbot

Chatbot-1

Figure : Chatbot flowchart

7. Visualization

visualisation-1

Figure : Visualization flowchart


About

A serverless Restaurant Table Reservation App for Halifax restaurants, on cloud using GCP & AWS services, for scalability, security, and cost-efficiency. Featuring Customer, Partner, and Admin apps with modules for Sign Up & Login, Reservations, Chatbot, and innovative components like dual deployment, email notifications, and regular data refresh.

Topics

Resources

Stars

Watchers

Forks