New Repo - contains further development
It's a multi-user (customer, store manager, delivery executive, developer) e-commerce app to manage a grocery store, made using Flask framework and SQLite database. It can be used to search and query products and place orders by customers, manage product inventories and different categories by the store manager, and manage deliveries by the delivery executive. The developer can use the CRUD APIs for products and categories using their private API keys. Each folder has a README.md file except static and templates folders. The ScreenFlow folder has screenshots of the website and shows the flow for all users(except developer).
- 4 types of users: Customer, Store Manager, Delivery Executive, Developer
- CRUD APIs for Product and Category management(flask_restx) - You can play around with the API endpoints by pasting the contents of
application/APIdoc.yaml
file in Swagger Editor - Proper authentication and authorization framework(flask-login)
- External APIs: Stripe for online payments, Twilio for OTPs
- Ability to search Products based on category, ratings, and various other product features
- Product recommendation systems for customers based on their previous orders and for showing similar products of a given product based on product description.
git clone https://github.com/Schefflera-Arboricola/Grocery-Store.git
cd Grocery-Store
- get API credentials for Twilio from here and for Stripe from here
- set up your API credentials in
sh local_run.sh
file - In
application/config.py
file, in theLocalDevelopmentConfig
class comment theSQLITE_DB_DIR
initialization for docker and uncomment for the virtual environment sh local_setup.sh
sh local_run.sh
- open
http://127.0.0.1:8080
in the browser to view the website
- set up your API credentials in
.env
file docker-compose up --build
- open
http://127.0.0.1:8080
in the browser to view the website
* If you get any keyword error, go to inspect and try deleting the cookie data
Test users' login credentials for all types of users :
username
:aditijuneja
password
:123456789
(Change the customer's phone number to the number you want to receive the OTP on, using the 'Edit Profile' option on the dashboard)
Feel free to make any issues/PRs to better the project.