ShopKart is a modern full-stack e-commerce web application built with Python, Django, SQLite, Bootstrap, and JavaScript. It includes secure authentication, email OTP verification, catalogue browsing, cart, wishlist, checkout, order tracking, PDF invoices, reviews, coupons, stock control, and a staff dashboard.
- User registration, login, logout, password reset, password change, and email OTP verification
- Responsive homepage with hero, categories, featured products, trending products, and search
- Product listing with category, price, search, sorting, pagination, and detail pages
- Cart, wishlist, checkout, coupons, COD, and demo online payment records
- Order history, order tracking, confirmation email, and downloadable PDF invoices
- User profile and address management
- Django admin plus custom staff dashboard with revenue, users, low stock, recent orders, and status analytics
- Reviews and average ratings
- CSRF protection, Django password hashing, ORM queries, form validation, and login-required pages
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py seed_shopkart
python manage.py runserverOpen http://127.0.0.1:8000/.
Demo admin:
- Username:
admin - Password:
Admin@12345
The checkout creates real Payment records and supports Cash on Delivery plus a demo online gateway provider. To connect Razorpay or Stripe in production, install the provider SDK, add keys to environment variables, and replace the demo branch in store.views.place_order with provider order creation and webhook verification.
Supported environment variables:
RAZORPAY_KEY_IDRAZORPAY_KEY_SECRETSTRIPE_PUBLIC_KEYSTRIPE_SECRET_KEYSHOPKART_SECRET_KEYSHOPKART_ALLOWED_HOSTS
Development uses Django's console email backend. OTP, password reset, and order emails print to the terminal. For production, set SHOPKART_EMAIL_BACKEND and SMTP settings in shopkart/settings.py.
shopkart/ Django project settings and root URLs
store/ Commerce app: models, forms, views, admin, utilities
templates/ Reusable Django templates
static/ CSS and JavaScript assets
media/ Uploaded product/category images
requirements.txt Python dependencies
- Set
DEBUG=Falsebefore production deployment. - Configure
SHOPKART_SECRET_KEY,SHOPKART_ALLOWED_HOSTS, static file hosting, media storage, SMTP, and a production database. - Run
python manage.py collectstatic. - Use webhooks for real payment confirmation before marking online payments as paid.