anubhav06 / eatit

🍜 Online food ordering web application made using React+Django

Home Page:https://eatin.vercel.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EATIN

An online food ordering web application similar to UberEats / Swiggy made using React + Django

Try Out: https://eatin.vercel.app/

Django CI


Test Credentials πŸ”

User Account

Username: anubhav-test  
Password: eatin-password

Restaurant Account

Email: evergreen@example.com
Password: eatin-restaurant-password

Features ✨

  • Users can signup and optionally decide to become sellers by on-boarding to Stripe.
  • Login via mobile number and OTP instead of the standard email and password
  • Users can browse through the available restaurants, add food item(s) to their cart and then make test payments
  • Users get order status updates through text SMS
  • Card payments are accepted by the restaurants and funds are routed to the sellers connected Stripe account
  • Food Items can be listed, shown, added, edited and deleted by the restaurants
  • Simple admin page for restaurants to manage

Technical Features ✨

  • Backend is made using Django and DRF
  • Frontend is made using ReactJS
  • Authentication system using JWT with login and signup pages
  • Card payments are accepted via Stripe Checkout and restaurant onboarding process is done via Stripe Connect
  • Text SMS using Twilio's Verify and SMS API for authenticating users and sending order updates
  • AWS S3 buckets for storing and retrieving the static files (images, etc.)
  • Backend is hosted on Heroku, and frontend is hosted on Vercel
  • PostgreSQL is used as production database

Installation πŸ–₯️

Split the terminal in two and follow the below steps in different terminals

Setup Backend πŸ”¨

  1. Download Python if not installed already
  2. cd backend to go in that directory
  3. Rename example.env to .env & add respective enviroment variables
  4. Run pip install -r requirements.txt to install the dependencies
  5. Run python manage.py migrate to migrate the database
  6. Run python manage.py runserver to start the server
  7. Add a Restaurant Group in the admin panel by following the below steps
    • Go to django's admin panel from 127.0.0.1/admin/
    • Login with the superuser credentials
    • Click on Groups -> Add Group -> (add the below credentials)
    • Name: Restaurant
    • Choose the following permissions for the restaurant:
    •   restaurants|food item|Can add food item 
        restaurants|food item|Can change food item
        restaurants|food item|Can delete food item
        restaurants|food item|Can view food item
      

Setup Frontend πŸ”¨

  1. Download NodeJS if not installed already
  2. cd frontend to go in that directory
  3. Rename example.env to .env
  4. Run npm install to install the dependencies
  5. Run npm start to start the server

Documentation πŸ“–

A detailed documentation for understanding the project is available here

Contributing πŸ’ͺ🏻

This repository is open to contributions.
Feel free to create a new issue or work on an existing issue
Make sure to read the contribution guildlines before jumping into it.

License βš–οΈ

Eatit is released under the MIT license

About

🍜 Online food ordering web application made using React+Django

https://eatin.vercel.app/

License:MIT License


Languages

Language:JavaScript 52.7%Language:Python 37.0%Language:CSS 9.5%Language:HTML 0.7%Language:Procfile 0.0%