This is an e-Commerce food delivery web-based application that enables users to order food online from our partner range of restaurants and individual vendors.
A sequel and beta version of Tamu-Foods that I had earlier made with the Flask framework and alpha version of TamuFoods I recently revamped using React, Redux and Node express.
TamuFoods is a kenyan Food Tech company that seek to facilitate trade between vendors, merchants and customers through an e-Commerce platform. Unlike the existing food deliver applications that focuses on established restaurants, we seek to expand our vendors base by allowing private chefs, catering students, and other professionals who love cooking join the platform to sell their recipes.
The application is built into two broad categories:
-
Hompage
- General information about the company.
- Imporant links to contact administration.
- Provision to press and publications.
-
Menupage
- View product catalogue.
- Process product purchase(add to cart)
-
Cart
- View selected customer items.
- Adjust invenory.
- Initiate checkout process.
- Save and clear cart items.
This platform offers multi user roles.
- Self register.
- View client oriented view ports and other allowed permisions.
- Initiate and process orders.
- Request on location delivery.
- Customize personal profile and information.
Defined as a sole proprietor, business owner or a registered company patnering with Tamu Foods.
Vendor - Legal partner to TamuFoods offering food items. Merchant - Possible potential 3rd party trade facilitators. They include, delivery company or individuals, suppliers, government, financial and non-financial instiutions etc.
- General responsibilities.
- Registered as a vendor in application.
- Customize personal profile and account information.
- Status
- On registration and incase of suspension = Pending.
- Upon verification = Approved.
- Incase of withdrawal = Rejected.
- Approved vendors can:
- Create food items and assign food category they deal in.
- Manage their inventory.
- View sales reports and business accounts.
- Approved merchants e.g delivery C/O can:
- Process delivery.
- View delivery reports.
- System admin has superuser prvilideges to maintain the application.
- Manages all users, inventory and has access to all the available models.
- Verifies and approves users registered as Merchants and vendors.
- MultiUser Roles, permission and authentication
- Custom profile interface. i.e user can update personal information
- e-Commerce shopping experience.
Development | Django 4.1.3 | Postgress |
---|---|---|
Production | Hosted on Railway | LiveLink |
UI UX Prototype | DATABASE |
---|---|
Click link to view wireframe and design concept on Figma | Click link to view schema on Miro |
- Python 3.6 +
- JavaScript
- PostgreSQL
- IDE of choice.
- More listed on requirements.txt
- Clone this repo, run:
git clone https://github.com/John-Kimani/tamu_foods_with_django.git
- Move into the project folder:
cd tamu_foods_with_django
- Open project with IDE i.e VsCode run:
code .
- Create projects virtual environment and install all packages
virtualenv venv
pip install -r requirements.txt
- Activate virtual environment
pipenv shell
- Create postgress DB
sudo -u postgres psql
password for user i.e: 'you-will-never-guess'
postgres=#: CREATE DATABASE blackpanther22;
CREATE DATABASE
- Set your environment variables, keys and other configurations
- SECRET_KEY='django-secret-key' or 'you-will-never-guess'
- MODE='dev'
- DEBUG=True
- DEV_DB_NAME='blackpanther22'
- DEV_DB_USER='postgres user' or 'allowed psql user'
- DEV_DB_PASSWORD='you-will-never-guess' or Null
- DEV_DB_HOST=provide default
- ALLOWED_HOSTS=provide for localhost
- CLOUDINARY_CLOUD_NAME='your cloudinary username'
- CLOUDINARY_API_KEY='your cloudinary api'
- CLOUDINARY_API_SECRET='your cloudinary secret key'
- CSRF_TRUSTED_ORIGINS =[ALLOWED_HOSTS]
- DISABLE_COLLECTSTATIC=0
- Make migrations and migrate configurations to new DB
python manage.py makemigrations
python manage.py migrate
- Run entry file:
python3 manage.py runserver
- Create superuser
python manage.py createsuperuser
This project was designed and developed by : Kimani John