Skip to content

Huerte/ShopNow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

139 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›’ ShopNow - Modern E-Commerce Platform

ShopNow Homepage

A full-featured e-commerce web application built with Django, featuring a modern responsive design, comprehensive user management, and advanced shopping features.

Python Django Bootstrap

SQLite License

πŸ“‹ Table of Contents


✨ Features

πŸ›οΈ Core E-Commerce Features

  • Product Catalog: Browse products by category with advanced filtering
  • Shopping Cart: Add/remove items with real-time quantity updates
  • Secure Checkout: Complete purchase flow with payment processing
  • Order Management: Track order status and view order history
  • Wishlist: Save favorite products for later purchase
  • Product Reviews & Ratings: User-generated reviews with star ratings
  • Search Functionality: Find products quickly with search and filters

πŸ‘€ User Management

  • User Registration & Authentication: Secure signup/login system
  • Social Authentication: Google OAuth integration
  • Profile Management: Update personal information and preferences
  • Password Reset: Secure password recovery via email
  • Admin Panel: Comprehensive admin interface for store management

🎨 UI/UX Features

  • Responsive Design: Mobile-first approach with Bootstrap 5
  • Modern Interface: Clean, intuitive user experience
  • Dynamic Pricing: Support for discounts and promotional codes
  • Multi-currency: USD and Philippine Peso support
  • Image Gallery: Product images with zoom and gallery view

πŸ”’ Security & Performance

  • CSRF Protection: Built-in security measures
  • Session Management: Secure user sessions
  • Admin Access Control: Restricted admin panel access
  • Static File Optimization: Compressed and cached static assets
  • Database Optimization: Efficient queries and indexing

πŸ–ΌοΈ Screenshots

Homepage & Navigation

Homepage Modern homepage with featured products and promotional banners

User Authentication

Login Page User-friendly login interface with social authentication

Register Page User-friendly Register interface with social authentication

User Profile

User Profile Comprehensive user profile management

Product Catalog

Product Catalog Comprehensive product listing with filtering options

Product Details

Product Details Detailed product view with images, reviews, and purchase options

Shopping Cart

Shopping Cart Shopping cart with quantity controls and price calculations

Checkout Process

Checkout Streamlined checkout process with order summary


πŸ› οΈ Technologies Used

Backend

  • Django 4.2.20 - High-level Python web framework
  • Python 3.8+ - Programming language
  • SQLite/PostgreSQL - Database (configurable)
  • Django Allauth - Authentication system
  • Pillow - Image processing
  • Gunicorn - WSGI HTTP Server (production)

Frontend

  • HTML5 - Markup language
  • CSS3 - Styling
  • JavaScript - Client-side functionality
  • Bootstrap 5 - Responsive CSS framework
  • jQuery - JavaScript library

Development & Deployment

  • Git - Version control
  • pip - Package management
  • virtualenv - Virtual environment
  • Whitenoise - Static file serving
  • python-decouple - Environment configuration

πŸ“ Project Structure

ShopNow/
β”œβ”€β”€ src/                          # Main source code
β”‚   β”œβ”€β”€ main/                     # Django project settings
β”‚   β”‚   β”œβ”€β”€ settings.py          # Project configuration
β”‚   β”‚   β”œβ”€β”€ urls.py              # Main URL routing
β”‚   β”‚   β”œβ”€β”€ middleware/          # Custom middleware
β”‚   β”‚   └── wsgi.py              # WSGI configuration
β”‚   β”œβ”€β”€ store/                   # Main e-commerce app
β”‚   β”‚   β”œβ”€β”€ models.py            # Database models
β”‚   β”‚   β”œβ”€β”€ views.py             # View logic
β”‚   β”‚   β”œβ”€β”€ urls.py              # App URL routing
β”‚   β”‚   β”œβ”€β”€ forms.py             # Form definitions
β”‚   β”‚   β”œβ”€β”€ admin.py             # Admin interface
β”‚   β”‚   └── templates/           # HTML templates
β”‚   β”œβ”€β”€ accounts/                # User authentication
β”‚   β”‚   └── adapter.py           # Custom auth adapter
β”‚   β”œβ”€β”€ static/                  # Static files (CSS, JS, images)
β”‚   β”œβ”€β”€ media/                   # User-uploaded files
β”‚   └── manage.py                # Django management script
β”œβ”€β”€ docs/                        # Documentation
β”‚   └── screenshots/             # Application screenshots
β”œβ”€β”€ requirements.txt             # Python dependencies
β”œβ”€β”€ LICENSE                      # Project license
└── README.md                    # This file

πŸš€ Installation & Setup

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)
  • Git

Step-by-Step Installation

  1. Clone the Repository

    git clone https://github.com/yourusername/ShopNow.git
    cd ShopNow
  2. Create Virtual Environment

    python -m venv venv
    
    # Activate virtual environment
    # On Windows:
    venv\Scripts\activate
    # On macOS/Linux:
    source venv/bin/activate
  3. Install Dependencies

    pip install -r requirements.txt
  4. Environment Configuration

    # Create .env file
    cp .env.example .env
    
    # Edit .env file with your settings
    SECRET_KEY=your-secret-key-here
    DEBUG=True
    DATABASE_URL=sqlite:///db.sqlite3
    EMAIL_HOST=smtp.gmail.com
    EMAIL_PORT=587
    EMAIL_HOST_USER=your-email@gmail.com
    EMAIL_HOST_PASSWORD=your-app-password
  5. Database Setup

    cd src
    python manage.py makemigrations
    python manage.py migrate
  6. Create Superuser

    python manage.py createsuperuser
  7. Collect Static Files

    python manage.py collectstatic
  8. Run Development Server

    python manage.py runserver
  9. Access the Application


πŸ’» Usage

For Users

  1. Browse Products: Visit the homepage to see featured products
  2. Search & Filter: Use the search bar and category filters
  3. Add to Cart: Click "Add to Cart" on any product
  4. Checkout: Complete your purchase in the checkout process
  5. Track Orders: View order status in your profile

For Administrators

  1. Access Admin Panel: Login at /admin
  2. Manage Products: Add, edit, or remove products
  3. Handle Orders: Process and update order status
  4. User Management: Manage user accounts and permissions
  5. Analytics: View sales and user statistics

πŸ”§ Configuration

Database Configuration

The application supports multiple database backends:

SQLite (Default)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

PostgreSQL

DATABASES = {
    'default': dj_database_url.config(default=os.getenv('DATABASE_URL'))
}

Email Configuration

Configure email settings for password reset and notifications:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'your-email@gmail.com'
EMAIL_HOST_PASSWORD = 'your-app-password'

Static Files Configuration

STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / "static"]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

πŸ“š API Documentation

Key Models

Product Model

class Product(models.Model):
    name = models.CharField(max_length=200)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    image = models.URLField(max_length=500)
    is_featured = models.BooleanField(default=False)
    discount_percentage = models.PositiveIntegerField(default=0)

Order Model

class Order(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    items = models.ManyToManyField(OrderItem)
    total_amount = models.DecimalField(max_digits=10, decimal_places=2)
    status = models.CharField(max_length=20, choices=ORDER_STATUS_CHOICES)
    created_at = models.DateTimeField(auto_now_add=True)

Key Views

Product Views

  • product_list() - Display all products
  • product_detail() - Show individual product
  • product_search() - Search functionality

Cart Views

  • add_to_cart() - Add item to cart
  • remove_from_cart() - Remove item from cart
  • update_cart() - Update quantities

User Views

  • user_profile() - User profile management
  • order_history() - View past orders
  • wishlist() - Manage wishlist

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the Repository

    git clone https://github.com/yourusername/ShopNow.git
  2. Create a Feature Branch

    git checkout -b feature/amazing-feature
  3. Make Your Changes

    • Follow PEP 8 style guidelines
    • Add tests for new features
    • Update documentation
  4. Commit Your Changes

    git commit -m 'Add amazing feature'
  5. Push to Branch

    git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Write clear, descriptive commit messages
  • Test your changes thoroughly
  • Update documentation as needed
  • Follow the existing code style
  • Add appropriate error handling

πŸ‘₯ Contributors

πŸ† Project Creators & Maintainers

Huerte
!HuerteDev

πŸš€ Full Stack Developer
Venomous-pie
dedicatoriaDev

πŸš€ Full Stack Developer

🀝 Want to Contribute?

We welcome contributions from the community! Please read our Contributing Guidelines to get started.

Contributors Forks Stars Issues

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ”— Useful Resources

Django Resources

Frontend Resources

E-Commerce Best Practices

Development Tools

Deployment Resources

Testing Resources

Performance Optimization


πŸ“ž Support

If you encounter any issues or have questions:

  1. Check the Documentation: Review this README and Django docs
  2. Search Issues: Look for similar issues in the repository
  3. Create an Issue: Report bugs or request features
  4. Contact: Reach out to the maintainers

Happy Shopping! πŸ›’βœ¨

About

Modern Django e-commerce platform with user auth, product catalog, shopping cart, order management, and mobile-responsive Bootstrap UI.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors