Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Cloudbites is an intuitive web application that aides with your restaurant selection process by equipping one with multiple processed data points to make a calculated decision

Notifications You must be signed in to change notification settings

vishalprabha/cloudbites

Repository files navigation

Logo

Cloudbites


Table of Contents
  1. About The Project
  2. Getting Started
  3. Workflow of the system
  4. Authors

About The Project

Have you ever been in a dilemma on which restaurant to pick based on the food that you would like to eat?
Well look no further - We present to you Cloudbites!

Cloudbites is an intuitive and user friendly application that aides with your restaurant selection process by equipping one with multiple processed data points to make a calculated decision.

Features

  • Massive collection of restaurants from Yelp dataset not restricting one to restaurants signed up with the app.
  • Secure account creation, authorization and authentication.
  • Searchable restaurant filter based on any relevant text.
  • City based search filter.
  • Interactive map with processed data to make selections from choices.
  • Concise restaurant information like
    • Name
    • Timings
    • Images
    • Reviews
    • Wordcloud of Reviews
    • Unique recommendations
  • Twitter feed based on search text

(back to top)

Technologies

Front end

  • React
  • Redux
  • deck.gl
  • Mapbox GL
  • Material UI

Back end

  • Elastic search
  • Redis
  • Kafka
  • ZooKeeper
  • Flask REST server
  • Natural Language Processing
  • nginx

Deployment and monitoring

  • Docker
  • GitHub actions
  • Prometheus
  • Grafana

Resources

  • GCP Cloud storage(Bucket)
  • GCP Virtual machine

(back to top)

Architecture



(back to top)

Getting Started

The project follows a microservice architecture. Follow the below steps to setup and run the application locally.

Prerequisites

The following software, accounts and tools are required to get the project up and running:

  • Google cloud account with active credits - To Provision VM and Cloud storage bucket to hold relevant details
  • Docker - To run the containers locally
  • Elastic search account - To load Yelp data and build meta engine
  • Twitter developer account - To access Twitter's searching/streaming api

(back to top)

Installation

The application components are split into individual containers. So two docker files are required to be run in order to bring up the application.

  1. Either Git clone or download the code from GitHub
  2. Navigate to these two folders app/react-ui and app/flask-api separately and run the below commands:
  • docker compose pull - To pull relevant Images
  • docker compose build - To setup dependencies and the containers
  • docker compose up -d - To run the container in detached mode
  1. Navigate to localhost:3000 and you should be able to use the application.
  2. The backend endpoints are accessible through localhost:5000 - but some are access restricted.

(back to top)

Future Work

  • Type ahead feature in search bar leveraging Meta engine from Elastic search.
  • Reverse image search to filter restaurants.
  • Setting up websocket to populate relevant filtered tweets.
  • Clickable recommended restaurants.
  • Additional filters and data points.

(back to top)

Authors

Vishal Prabhachandar

Srinivas Akhil Mallela

Aravind Bisegowda Srinivas

Soumyadeb Maity

Aaron Li

(back to top)

About

Cloudbites is an intuitive web application that aides with your restaurant selection process by equipping one with multiple processed data points to make a calculated decision

Topics

Resources

Stars

Watchers

Forks