this project is about a simple online shop.
- General Info
- Technologies Used
- Features
- Screenshots
- Setup
- Project Status
- Room for Improvement
- Contact
This project is actually an online shop where admins can manage products and users and users can make purchases, that was done as the final project of my Python- Django course.
- Python - version 3.9 & 3.10
- Django - version 4.1.9
- Django Rest Framework - version 3.14.0
- Postgre SQL - version 15.0
- HTML & CSS - version 5.0
- JavaScript - version 1.5
List the ready features here:
- Great user experience
- discount coupons supported
- Use JWT to improve its security
- User login with OTP (email and mobile phone) provided. (note: Because Celery is used in the otp sending process and Celery does not have an official version for Windows, it is highly recommended to load the project on Linux to get the best performance.)
- Homepage with showing discounted products
- Admin panels
- Cart page
- Review order page
-
Profile pages:
- User information page
- User Change password page
- User addresses page
- User orders list page
- User orders details page
- User order tracking page
-
User register / login pages:
- Register page
- Login page
- Login with OTP page
This project has several requirement packages that listed in requirements.txt file in project root directory.
To start work with project:
1- Clone the project repo with git clone
.
2- Cd to project root directory "src" and create a virtual environment.
3- Activate virtual environment.
4- Install project requirement packages with pip install -r requirements.txt
5- Create a db in postgres with name "odexshop"
6- Create a secrets.py file in src/config directory and place your own SECRET_KEY, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD, DATABASE_PASSWORD and API_KEY for otp SMS sending API parameters in it.
7- Create migration files with python manage.py makemigrations
8- Migrate with python manage.py migrate
9- Create a superuser account with python manage.py createsuperuser
and enter the requested items.
10- Run it with python manage.py runserver
Project is: complete
There are many things can be done to improve projects. but some of most important things is:
To do:
- Add contact-us functionality
- Add comment feature on posts
- Add wishlist functionality for users
Created by @Sayyed Mohammad Razavi - feel free to contact me!