All Projects → rhythm98 → Food-Ordering-Application

rhythm98 / Food-Ordering-Application

Licence: MIT License
No description or website provided.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Handlebars
879 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to Food-Ordering-Application

facebook-clone
Building Facebook clone. As usual, any additional styling will be up to you but the really important stuff is to get the data and back end working properly.
Stars: ✭ 14 (-30%)
Mutual labels:  bootstrap4, html-css-javascript
mean-stack
MEAN stack Mongoose, Express, Angular6, Node
Stars: ✭ 22 (+10%)
Mutual labels:  expressjs, bootstrap4
DevHelpBox
we are creating this community so that other developers can get benefits of it.
Stars: ✭ 35 (+75%)
Mutual labels:  bootstrap4, html-css-javascript
pothole detection
By using this app users can report the potholes on road by clicking a photo via our app and if a pothole is detected by Machine Learning modal then it is saved to our Database from where officials can view the specifics like location,reported by and official can resolve the request.User are notified by email for every update regarding their request
Stars: ✭ 17 (-15%)
Mutual labels:  expressjs, bootstrap4
gatsby-reactstrap
Adding Bootstrap 4 to an Gatsby React App and serve generated the static site with Express.js
Stars: ✭ 25 (+25%)
Mutual labels:  expressjs, bootstrap4
markyp-bootstrap4
Create Bootstrap 4 web pages using purely Python.
Stars: ✭ 19 (-5%)
Mutual labels:  bootstrap4, html-css-javascript
chatApp
This is the chat application based on Javascript, html and bootstrap. This chat app use the firebase real time database.
Stars: ✭ 15 (-25%)
Mutual labels:  bootstrap4, html-css-javascript
lightning-rpc-explorer
Simple, self-hosted lightning network explorer.
Stars: ✭ 45 (+125%)
Mutual labels:  expressjs, bootstrap4
course
gary60405.github.io/course/
Stars: ✭ 17 (-15%)
Mutual labels:  bootstrap4
express-mysql-rest
Building the simple api with sequelize, mysql and express js. this repository contains the code about how to use sequelize with mysql at express js. for example i have provide the crud operation to this repository. You can also testing the api with chai and mocha with chai-http by this repository
Stars: ✭ 25 (+25%)
Mutual labels:  expressjs
generator-espress
an opinionated yeoman generator that scaffolds a mvc express webapp completely in es6
Stars: ✭ 20 (+0%)
Mutual labels:  expressjs
data-visualization-sample-app
Sample application to visualize basic activity on your Zoom account and can be used as code example to assist new Zoom Developers
Stars: ✭ 18 (-10%)
Mutual labels:  expressjs
eGyan
eGyan is a web application built with Node.js (Express) and Hasura (https://hasura.io/) Platform. It is a simple and effective eLearning app for everyone.
Stars: ✭ 36 (+80%)
Mutual labels:  expressjs
tutorial-crud-mean
Repositório responsável pelo tutorial realizado no canal do youtube
Stars: ✭ 41 (+105%)
Mutual labels:  expressjs
task-manager
Task Manager App
Stars: ✭ 19 (-5%)
Mutual labels:  expressjs
express-mvc
A light-weight mvc pattern for express framework with minimum dependencies
Stars: ✭ 23 (+15%)
Mutual labels:  expressjs
dummy-products-api
An api to fetch dummy e-commerce product 👕 👗 👖 👚 JSON data with placeholder images.
Stars: ✭ 102 (+410%)
Mutual labels:  expressjs
faeshare
MERN based social media web app made with the help of Next.js, Socket.io and TailwindCSS.
Stars: ✭ 37 (+85%)
Mutual labels:  expressjs
Vinetos.fr
The website of Vinetos
Stars: ✭ 14 (-30%)
Mutual labels:  html-css-javascript
Social-Network-HTML
Social-Network_HTML
Stars: ✭ 14 (-30%)
Mutual labels:  html-css-javascript

Food Ordering Application

A beginner-friendly project which helps you to create a green corridor so that your meal can be delivered to you in a very efficient manner :) This project is useful for people who don't want to buy a full-fledged restaurant to serve people, instead, they just need to have a kitchen in their favorite place and some delivery partners according to their needs.

BACKEND

Quickstart

Download Node.js, git, VS Code, mysql

Install MySQL

$ sudo apt update
$ sudo apt install mysql-server
$ sudo mysql_secure_installation
$ sudo mysql
CREATE USER 'user' IDENTIFIED WITH authentication_plugin BY 'password';
ALTER USER 'user' IDENTIFIED WITH mysql_native_password BY 'password';
-> GRANT PRIVILEGE ON *.* TO 'user'@'host';
-> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on database.table TO 'root'@'localhost' WITH GRANT OPTION;
->(root user) GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Start MySQL Service

Linux

$ sudo service mysql start

Log in to MySQL as root

Without root password -

$ mysql -u user
mysql>

With root password -

$ mysql -u root -p
Enter Password:

mysql>

Create DB, User, Grant access

CREATE DATABASE dishdb;

CREATE USER 'dishuser'@'localhost' IDENTIFIED BY 'dish@Pass1';

USE dishdb;

GRANT ALL PRIVILEGES ON dishdb to 'dishuser'@'localhost';

GRANT ALL PRIVILEGES ON dishdb.* TO 'dishuser'@'localhost';

FLUSH PRIVILEGES;

Login using the new user

$ mysql -u dishuser -p
Enter Password: (enter 'dish@Pass1' here)

mysql>
$ git clone https://github.com/rhythm98/Food.git FoodApp
$ cd FoodApp
$ npm i
$ node -r dotenv/config scripts/seed_sampledish.js # to add seed data
$ node src/run.js # to start server

Visit http://localhost:2323/

Extension to make REST API requests inside VS Code

Business Logic

Users

  1. create users this will create a new user

Dishes

  1. Only admin user can create dish required fields are

    • name
    • imageUrl
    • price
    • description
  2. show all dishes list all existing dishes, we should have following filtering support

    • filter by veg/non-veg
    • filter by query contained in title (search by title)
  3. edit dish details by admin users TBD

  4. delete dishes TBD

Comments

  1. show all comments (under a dish)

  2. add a comment

API Documentation

users

  1. POST /api/users

Creates a new user with required fields in body - firstName, lastName, unique username, email and password

  1. GET /users/{id}

Get an user with a given user id

  1. GET /users/{username}

Get an user with a given username

  1. GET /api/users

Get list of all users

dishes

  1. GET /api/dishes

Get list of all dishes

  1. POST /api/dishes

Create a new dish. Required fields in body -

name, imageUrl, price, description

  1. GET /api/dishes/{id}

To see dish with a particular id

Project Structure

├── .env
├── public_static
│   ├── index.html
│   ├── style.css
│   ├── about.html
│   └── jquery-3.6.0.js
├── scripts
│   └── seed_sampledish.js
├── src                        # Backend
│   ├── auth
│   │   ├── strategies
│   │   │   └── passport-local-strategy.js
│   │   └── passport.js
│   ├── controllers            # (functions to execute sql queries)
│   │   ├── dishes.js          # (fetchDishes, fetchDishById, createDish)
│   │   └── users.js           # (fetchUsers, fetchUserById, fetchUserByUsername, createUser)
│   ├── models                 # ORM sequelize
│   │   └── db.js              # (creating table users, dishes)
│   ├── routes
│   │   ├── api
│   │   │   ├── dishes.js
│   │   │   ├── users.js
│   │   │   └── index.js
│   │   └── pages
│   │       ├── dishes.js
│   │       ├── auth.js
│   │       └── index.js
│   ├── run.js
│   └── server.js
│
└── views
    ├── layouts
    │   └── main.hbs
    ├── pages
    │   ├── auth
    │   │   ├── login.hbs
    │   │   └── signup.hbs
    │   ├── dishes
    │   │   └── id.hbs
    │   ├── dishes.hbs
    │   ├── index.hbs
    │   └── user.hbs
    └── partials
        ├── authLoginform.hbs
        └── authSignupform.hbs

FRONTEND (React)

$ git clone https://github.com/rhythm98/Food.git FoodApp
$ cd FoodApp/client
$ npm i
$ npm start

Visit http://localhost:3000/

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

npm eject

Note: this is a one-way operation. Once you eject, you can’t go back!

If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].