A full-featured, modern single-vendor e-commerce platform built with Django. ShopNest provides a complete online shopping experience with product management, shopping cart, secure payment integration, and user authentication.
- User Registration & Login - Custom authentication with username/email
- Social Authentication - Google OAuth integration using Django Allauth
- Session Management - Persistent user sessions with automatic login redirect
- Profile Management - User profile with order history and account details
- Product Catalog - Browse products with detailed information
- Category Organization - Products organized by categories with slug-based URLs
- Product Search - Advanced search across product names, descriptions, and categories
- Product Images - Image upload with date-based organization
- Stock Management - Real-time inventory tracking
- Related Products - Automatic display of products in the same category
- 5-Star Rating System - Rate products from 1 to 5 stars
- Review Comments - Leave detailed feedback on purchased products
- Average Rating Display - Automatic calculation and display of average ratings
- Purchase Verification - Only buyers can rate products they've purchased
- Edit Ratings - Update your existing ratings and reviews
- Persistent Cart - Cart saved per user account
- Real-time Updates - Instant quantity adjustments
- Stock Validation - Prevents adding more items than available stock
- Cart Summary - Total items and cost calculation
- Quantity Control - Increase/decrease quantities or remove items
- Session-based - Cart persists across sessions for logged-in users
- Secure Checkout - Multi-step checkout process
- Guest Information - Ship to different addresses with custom recipient details
- SSLCommerz Integration - Secure payment gateway for Bangladesh market
- Payment Status Tracking - Success, failure, and cancellation handling
- Order Confirmation - Email notifications upon successful payment
- Transaction Management - Unique transaction IDs for each order
- Order History - View all past orders in user profile
- Order Status Tracking - Real-time order status updates
- Pending
- Processing
- Shipped
- Delivered
- Canceled
- Order Details - Itemized breakdown with quantities and prices
- Total Spent - Lifetime purchase analytics
- Multi-criteria Filtering
- Filter by category
- Price range filtering (min/max)
- Rating-based filtering
- Smart Search - Search across product names, descriptions, and categories
- Dynamic Price Range - Auto-calculated min/max price boundaries
- Order Confirmations - HTML email templates for order confirmation
- Custom Email Templates - Professional, branded email designs
- Framework: Django 6.0
- Database: SQLite (development) / PostgreSQL-ready
- Authentication: Django Allauth
- Payment Gateway: SSLCommerz
- Template Engine: Django Templates
- Styling: Tailwind CSS (utility-first, CDN)
- Icons: Font Awesome
- Image Handling: Pillow (PIL)
- Python 3.8 or higher
- pip (Python package manager)
- Virtual environment (recommended)
- SSLCommerz merchant account (for payment integration)
- Email account for SMTP (Gmail, SendGrid, etc.)
git clone https://github.com/yourusername/shopnest.git
cd ShopNestpython -m venv env
# On Windows
env\Scripts\activate
# On macOS/Linux
source env/bin/activatepip install -r requirements.txtCreate a .env file in the ShopNest directory (inner folder) with the following variables:
# Django Settings
SECRET_KEY=your-secret-key-here
DEBUG=True
# Database (if using PostgreSQL)
DATABASE_URL=postgres://user:password@localhost:5432/shopnest
# SSLCommerz Payment Gateway
SSLCOMMERZ_STORE_ID=your_store_id
SSLCOMMERZ_STORE_PASSWORD=your_store_password
SSLCOMMERZ_PAYMENT_URL=https://sandbox.sslcommerz.com/gwprocess/v4/api.php
SSLCOMMERZ_VALIDATION_URL=https://sandbox.sslcommerz.com/validator/api/validationserverAPI.php
# Email Configuration
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.gmail.com
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-specific-password
EMAIL_PORT=587
EMAIL_USE_TLS=Truepython manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py collectstaticpython manage.py runserverVisit http://127.0.0.1:8000/ in your browser.
ShopNest/
βββ manage.py
βββ db.sqlite3
βββ requirements.txt
βββ Model_deatils.md
βββ .env
βββ media/ # User uploaded files
β βββ products/
β βββ YYYY/MM/DD/ # Date-based organization
βββ static/ # Static assets (images, welcome.png)
βββ templates/ # HTML templates
β βββ base.html
β βββ shop/
β βββ home.html
β βββ product_list.html
β βββ product_detail.html
β βββ cart.html
β βββ checkout.html
β βββ profile.html
β βββ login.html
β βββ register.html
β βββ rate_product.html
β βββ payment_success.html
β βββ payment_fail.html
β βββ payment_cancel.html
β βββ email/
β βββ order_confirmation.html
βββ shop/ # Main application
β βββ models.py # Database models
β βββ views.py # View logic
β βββ urls.py # URL routing
β βββ forms.py # Django forms
β βββ admin.py # Admin configuration
β βββ sslcommerz.py # Payment integration
β βββ context_processor.py # Custom context processors
β βββ migrations/
βββ ShopNest/ # Project configuration
βββ settings.py
βββ urls.py
βββ wsgi.py
βββ asgi.py- Organizes products into categories
- Slug-based URLs for SEO
- One-to-many relationship with Products
- Complete product information (name, description, price)
- Stock management with availability status
- Image storage with date-based organization
- Automatic timestamp tracking
- Average rating calculation
- 1-5 star rating system
- Text comments/reviews
- Links users to products
- Timestamp tracking
- One cart per user (OneToOne)
- Multiple items per cart
- Automatic total price calculation
- Quantity management
- Complete order information
- Shipping details
- Payment status tracking
- Order status workflow
- Email notifications
- Django Admin Panel - Full CRUD operations
- Category Management - Create and organize categories
- Product Management - Add products with images
- Order Management - View and update order status
- User Management - Manage customer accounts
- Stock Control - Monitor and update inventory
- CSRF protection on all forms
- Password validation and hashing
- Login required decorators
- Purchase verification for ratings
- Secure payment gateway integration
- Environment variables for sensitive data
- Session security
The platform sends HTML emails for:
- Order confirmations with itemized details
- Custom branded templates
Configure your SMTP settings in .env file. For Gmail:
- Enable 2-factor authentication
- Generate an app-specific password
- Use the app password in EMAIL_HOST_PASSWORD
The project is configured for deployment on Render.com:
- Production URL:
https://shopnest-4thm.onrender.com - CSRF trusted origins configured
- Static files configuration ready
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub: @nabil0203
- Email: nabilahmed0203@gmail.com
- Django Framework Documentation
- SSLCommerz for payment gateway
- Django Allauth for social authentication
- Tailwind CSS for styling and responsive design