GithubHelp home page GithubHelp logo

food-dinein-ready's Introduction

Food-Dine-In-Ready

A graduate object oriented design project

App Idea

The app FoodDine-inReady is very different than all the leading food-industry apps available in the market because as of now, each and every app on the market is just focusing on delivery. But our Web-App, focuses on the dine-in aspect of the food sector and provides the user with an elevated experience by cutting down on their wait time, as well as exertion by providing multiple features such as, finding and reserving available parking space near the venue. The vision of our app is to provide customers with the same peace of mind in dine-in as they experience in a delivery based scenario, thus working towards 100% customer satisfaction. The App also provides a Map view of the inside of the restaurant which makes it stand out among other such apps.

The target audience for this app is not limited to any age-group. Everyone from a high school student to an old couple can utilize this app equally and benefit the same. However considering the scope of the project, and its online nature, we believe that the majority of the user base will comprise of Millenials as that is the most tech-savvy sector from the user-base.

Project Overview

Project Timeline

The project was divided into four phases to track the progress of the project at each phase. Project Timeline

Technology Stacks

The following trending technology stacks were used for the complete project. Technology Stacks

Front-end

The front-end react application is deployed on GitHub with three branches mainly master(User), restaurant manager and admin. Front-end React Application

Database

MongoDB database is used in this project as it is a NoSql database that can store data in JSON format Database

Back-end

The backend SpringBoot Application has been developed using spring boot and eclipse and has been deployed using GitHub and Heroku. Back-end SpringBoot Application

Dev-Ops

The front-end react and back-end Springboot is continuously integrated and continuously deployed on aws amplify and heroku respectively. AWS Amplify Heroku

System Architecture

The below diagram shows the system architecture of the project System Architecture

Design Pattern and Principle

MVC Design Pattern

For this project, we have utilized the model-view-controller design pattern. The model view controller design pattern states that the application/project must have a data model, presentation and control information and accordingly each of these must be separate objects. MVC pattern

  • The Model consists of pure application data which in our application has been fulfilled by the MongoDB Atlas.
  • The View serves the purpose of presenting the model’s data to the user. The view can access the model’s data but doesn't know how the user can manipulate or use this data. In our project, the view is served by the React.
  • The Controller exists between the view and model. It basically listens to the events which are triggered by the view and executes the actions required for these events. The reaction can be a call to a method, And as the model and view are connected through a notification mechanism, the result of the event is automatically reflected in the view. In our project, the controller is Spring Boot.

Design Principle

Open-Closed Principle

For this application, we are following the open-closed principle. The open-closed principle states that "software entities(classes, modules, functions, etc) should be open for extension, but closed for modification", which basically means that one should be able to extend a class behavior without actually modifying the class.

Deployment URLs

Customer Page

The Customer/User page is deployed on https://master.d1q95m7fvorcmw.amplifyapp.com/. The website can be logged in using Google Sign-In credentials

Restaurant Manager Page

The Restaurant Manager Page is deployed on https://restaurantmanager.d1q95m7fvorcmw.amplifyapp.com/. The website can be accessed only if it is added into the database by the admin.

Admin

The Admin Page is deployed on https://admin.d1q95m7fvorcmw.amplifyapp.com/. The Admin can add and remove the restaurants.

System Requirement Documentation

The System requirement documentation and complete README can be found here https://drive.google.com/drive/folders/1IuRwx8hAGrffIJM8KWWeW4zs5vZcGx9K?usp=sharing

food-dinein-ready's People

Contributors

suketsingh avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.