Skip to content

Broccoli is an enterprise-level grocery platform built with Python, Django, and PostgreSQL. It features user authentication, PayPal integration, a custom wallet, real-time stock validation, Redis caching, and a secure admin panel for managing products, orders, and users. Deployed on AWS EC2 with Cloudinary and SSL encryption.

Notifications You must be signed in to change notification settings

alanchrissantony/Broccoli

Repository files navigation

Broccoli

A Scalable E-commerce Platform built with Django and PostgreSQL. A basic set of functionalities allowing users to interact with the platform.

Broccoli landing Broccoli products

Features

  • User Authentication
    Secure sign-up, login, and password reset powered by Django Allauth.

  • Product & Inventory Management
    Create, update, and delete products and categories; real‑time stock synchronization.

  • Shopping Cart & Checkout
    Add items to cart, proceed through checkout, and select payment methods (PayPal, Wallet, COD).

  • Order Management
    View order history, order status tracking, and email notifications on status changes.

  • Admin Dashboard
    Custom Django admin with enhanced UX for managing users, products, and orders.

  • Media Handling
    Cloudinary integration for optimized image uploads and delivery.

  • Performance Optimization
    Redis caching for product listings and homepage, ensuring fast page loads.

  • Security Best Practices
    CSRF protection, PBKDF2 password hashing and HTTPS enforcement.

Diagram DB

Broccoli diagram DB

Installation and Running

  1. Clone the repository to your local machine:
$ git clone https://github.com/alanchrissantony/Broccoli.git
  1. Navigate to the project directory:
$ cd Broccoli
  1. Create/Activate environment:
$ pip install virtualenv
$ python -m virtualenv venv
$ .\venv\Scripts\activate
$ # or linux
$ source venv/bin/activate
  1. Install dependencies:
$ pip install -r requirements.txt
  1. Apply migrations to create the database:
$ python manage.py migrate
  1. Run the server:
$ python manage.py runserver

Environment Variables

You MUST create and config .env.

For example I create .env

# Django settings
ALLOWED_HOSTS=
DEBUG=
TIME_ZONE=
USE_I18N=
USE_TZ=
LANGUAGE_CODE=

# Django secret key
SECRET_KEY=

# Database URL
DB_URL=

# Cloudinary
CLOUD_API_KEY=
CLOUD_API_SECRET=
CLOUD_NAME=
CLOUD_SECURE=

# Mail
FROM_MAIL=
PASS_KEY=

# PayPal
PAYPAL_CLIENT_ID=
PAYPAL_CLIENT_SECRET=

All these environment variables are in .env

You can now access the API in your browser at http://localhost:8000/.

Custom Admin

Spotify admin

Author

This project is developed by Alan Chris Antony.

About

Broccoli is an enterprise-level grocery platform built with Python, Django, and PostgreSQL. It features user authentication, PayPal integration, a custom wallet, real-time stock validation, Redis caching, and a secure admin panel for managing products, orders, and users. Deployed on AWS EC2 with Cloudinary and SSL encryption.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published