Code Monkey home page Code Monkey logo

food-delivery's Introduction

food-delivery

food delivery app with react native

food-delivery's People

Contributors

hassanannajjar avatar ahmadysalah avatar

Watchers

James Cloos avatar  avatar

food-delivery's Issues

Back-end Route| orders [ADMIN] | Delete

Back-end Route: orders

delete order from the database

Route : /orders/:id

Method : delete


Main Things :

  • Database
  • Response

Database :

  • delete any orders from the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "delete order successfuly", }
    "Status-Code": 200    
    }

Create Order [Client] [post]

Back-end Route: order

post new order

Route : /orders

Method : post


Main Things :

  • Database
  • Response

Database :

-post new order to the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "order was added successfully", }
    "Status-Code": 200    
    }

Back-end Route| profile [ CLIENT] GET

Back-end Route: profile

get user data

Route : /profile

Method : get


Main Things :

  • Database
  • Response

Database :

  • get user data

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    userData: { id : 1234,
name: "Hassan", ..... }
    "Status-Code": 200    
    }

Back-end Route| products [ADMIN | CLIENT] | GET

Back-end Route: products

Get all products from the database

Route : /products

Method : get


Main Things :

  • Database
  • Response

Database :

  • get all products from the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "products loaded successfully" }
    "Status-Code": 200    
    }

Back-end Route| orders [ADMIN] | get by id

Back-end Route: orders

Get order by id

Route : /orders/:id

Method : get


Main Things :

  • Database
  • Response

Database :

  • get the order by id

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "order loaded successfuly", }
    "Status-Code": 200    
    }

Back-end Route| orders [ADMIN] | GET

Back-end Route: orders

Get all orders from the database

Route : /orders

Method : get


Main Things :

  • Database
  • Response

Database :

  • get all orders from the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { orderDetails: {
    "id": 1,
    "client_id": 1,
    "date": "2020-09-10T21:53:53.599Z",
    "total": 50,
    "order_price": 45,
    "status": "pending",
    "address": "غزة",
    "mobile_number": "05988425",
    "dilivery_price": 5
  }, }
    "Status-Code": 200    
    }

Get all clients [admin]

Back-end Route: all clients

Get all clients

Route : /clients

Method : post


Main Things :

  • Database
  • Response

Database :

  • get all clients data

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { clients data : [{id: 1, name: 'Khalid' ....}, .......] }
    "Status-Code": 200    
    }

Back-end Route| products [ADMIN] | Post

Back-end Route: products

add new product

Route : /products

Method : post


Main Things :

  • Database
  • Response

Database :

  • add new product

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "products added successfully" }
    "Status-Code": 200    
    }

Back-end Route| products [ADMIN] | DELETE

Back-end Route: products

Delete product

Route : /products/:id

Method : Delete


Main Things :

  • Database
  • Response

Database :

  • delete product

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "products delete successfully" }
    "Status-Code": 200    
    }

Back-end Route| Logout [ADMIN | CLIENT]

Back-end Route: Logout

remove the token and log out the user

Route : /Logout

Method : post


Main Things :

  • Response

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "Logout successfully" }
    "Status-Code": 200    
    }

Back-end [Admin] Routes

Route [/api/v1] GET POST PATCH delete Issue Number
/orders get an all orders #7
/orders/id get order delete orders #13 #8
/products get all products add new product #9 #10
/products/:id get product edit product to add discount or edit price or availability delete product #11 #12 #14

Back-end Route| products [ADMIN | CLIENT] | get by id

Back-end Route: products

Get product by id

Route : /products/:id

Method : get


Main Things :

  • Database
  • Response

Database :

  • get the product by id

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "product loaded successfuly", }
    "Status-Code": 200    
    }

Back-end Route| Login [ADMIN | CLIENT]

Back-end Route: login

post username and password to the server to get token

Route : /login

Method : post


Main Things :

  • Database
  • Response

Database :

  • check user in database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • if email or number not exist :
    {
    error: "email or number does not exist",
    "Status-Code": 403
    }
  • Success
    {
    data: { message: "Login successfully" }
    "Status-Code": 200    
    }

Orders [Client] Get all orders

Back-end Route: orders

Get all orders for client from the database

Route : /orders

Method : get


Main Things :

  • Database
  • Response

Database :

  • get all orders from the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "orders is loaded successfuly", }
    "Status-Code": 200    
    }

Back-end Route| profile [ CLIENT] PATCH

Back-end Route: profile

update user data

Route : /profile

Method : patch


Main Things :

  • Database
  • Response

Database :

  • update user data

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "data update successfully "}
    "Status-Code": 200    
    }

Back-end Route| signup [ CLIENT]

Back-end Route: signup

post signup data to the server

Route : /signup

Method : post


Main Things :

  • Database
  • Response

Database :

  • add a new user to the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • if email or number in database :
    {
    error: "email or number is already used",
    "Status-Code": 403
    }
  • Success
    {
    data: { message: "signup successfully" }
    "Status-Code": 200    
    }

Back-end Route| favorite [CLIENT] | GET

Back-end Route: favorite

Get all products from the database

Route : /favorite

Method : get


Main Things :

  • Database
  • Response

Database :

  • get favorite products from the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "favorite products loaded successfuly"}
    "Status-Code": 200    
    }

Delete Order [Client] [Delete]

Back-end Route: orders

delete order from the database

Route : /orders

Method : delete


Main Things :

  • Database
  • Response

Database :

  • delete an order from the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "orders was deleted successfuly", }
    "Status-Code": 200    
    }

Back-end [client] Routes

Route [/api/v1] GET POST PATCH delete Issue Number
/login post username and password to the server to get token #16
/logout remove token and log out the user #17
/signup post sign up data to the server #18
/products get all products add new product #9 #10
/profile get client data update client data #19 #20
/orders get client orders create new order delete order #22 #23 #24
/favorites get favorites product for client #15

File structure

📝 There are three main folders for the app :

  • client folder created using this command:
> expo init client

the file structure for client folder: ✔️

food-delivery
|-- client
  |-- node_modules
  |-- expo
  |-- assets
  |--components
  |--screens
  |--.gitignore
  |--app.json
  |--App.js
  |--bael.config.js
  |-- package-lock.json
  `-- package.json
  • server folder created using this command:
> mkdir server
> npm init

the file structure for server folder: ✔️

server
    |-- controllers
    |   |-- errors /
    |   |-- routes /
    |   |-- validation /
    |   `-- index.js
    |-- router
    |   `-- index.js
    |-- database
    |   |-- config 
    |        |--index.js 
    |   `-- queries
    |        |--index.js 
    |-- app.js
    `-- index.js 

Final File structure ✔️

|-- client /
|-- server  / 
|-- .gitignore
|-- README.md
|-- package-lock.json
`-- package.json

create server by express and install required modules

create the server inside the server main folder

  • create an app instead of express in a file. /src/app.js and export it as own module
  • create ./src/index.js file and import app.
  • set port as 5000 for example
  • start listening to the server with call back function to proceed the server is worked successfully

add scripts to the package JSON file

  • start script to start node on the server file
  • dev for development to start nodemon on the server & install nodemon if it does not exist.
  • test to start the test by jest for testing file & install jest if it does not exist.
    "server": "cd server && npm run dev",
    "client": "cd client && npm start",
    "start": "NODE_ENV=production node server/index.js",
    "dev": "nodemon server/index.js",
    "kill": "fuser -k 5000/tcp",
    "kill-run": "npm run kill && npm run server",

dependencies

axios
bcrypt
compression
env2
express
yup
jsonwebtoken
cookie-parser
pg

devDependencies

nodemon
prettier
  • add eslint configurations and vs code config file.

Back-end Route| products [ADMIN] | PATCH

Back-end Route: products

Update product

Route : /products/:id

Method : Patch


Main Things :

  • Database
  • Response

Database :

  • update product

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "products update successfully" }
    "Status-Code": 200    
    }

Back-end Route| favorite [CLIENT] | PATCH

Back-end Route: favorite

update client favorite

Route : /favorite

Method : patch


Main Things :

  • Database
  • Response

Database :

  • update favorite products from the database

Response :

Response may be success or error :

  • Error :
    {
    error: "bad request",
    "Status-Code": 400
    }
  • Success
    {
    data: { message: "favorite products update successfuly"}
    "Status-Code": 200    
    }

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.