An online food ordering web application similar to UberEats / Swiggy made using React + Django
Try Out: https://eatin.vercel.app/
Username: anubhav-test
Password: eatin-password
Email: [email protected]
Password: eatin-restaurant-password
- 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
- 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
Split the terminal in two and follow the below steps in different terminals
- Download Python if not installed already
cd backend
to go in that directory- Rename
example.env
to.env
& add respective enviroment variables - Run
pip install -r requirements.txt
to install the dependencies - Run
python manage.py migrate
to migrate the database - Run
python manage.py runserver
to start the server - 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
- Go to django's admin panel from
- Download NodeJS if not installed already
cd frontend
to go in that directory- Rename
example.env
to.env
- Run
npm install
to install the dependencies - Run
npm start
to start the server
A detailed documentation for understanding the project is available here
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.
Eatit is released under the MIT license