Skip to content

cseshahriar/eshop-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EShop Ecommerce Website With Django

This project is from my Django collaboration.

DEMO

Features

  • Full featured shopping cart
  • Product reviews and ratings
  • Top products carousel
  • Product pagination
  • Product search feature
  • User profile with orders
  • Admin product management
  • Admin user management
  • Admin Order details page
  • Mark orders as delivered option
  • Checkout process (shipping, payment method, etc)
  • PayPal / credit card integration

Download & Setup Instructions for the backend

  • 1 - Clone project: git clone https://github.com/cseshahriar/eshop-backend.git
  • 2 - cd eshop-backend
  • 3 - Create virtual environment: virtualenv myenv
  • 4 - myenv\scripts\activate
  • 5 - pip install -r requirements.txt
  • 6 - python manage.py runserver

Install frontend modules

With Docer and CI

🐍 Django + PostgreSQL + Docker (Production Ready)

This project demonstrates how to run a Django application with:

✅ PostgreSQL (persistent) ✅ Media & static files (persistent) ✅ Docker & Docker Compose ✅ Zero data loss ✅ Dev & Production friendly setup ✅ Easy backup & restore


📌 Versions

  • Python: 3.9
  • Django: Compatible with Django 4.x+
  • PostgreSQL: 15
  • Docker Compose: v2+

🧑‍💻 Local Development Setup (Without Docker)

1️⃣ Create virtual environment

python3.9 -m venv venv
source venv/bin/activate

# Install dependencies

pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

# Database Configuration (Local)
DB_CONFIG = {
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    'HOST': '127.0.0.1',
    'PORT': 5432,
    'NAME': 'practice_db',
    'USER': 'postgres',
    'PASSWORD': 'postgres'
}

# Code Quality (Optional but Recommended)
pip install ruff isort black flake8 pre-commit

pre-commit install
pre-commit autoupdate
pre-commit run --all-files

Reset hooks:
pre-commit clean
pre-commit uninstall
pre-commit install

# Dockerized Django Architecture
Django (Gunicorn)
   |
PostgreSQL (Docker Volume)
   |
Media Files (Docker Volume)

# Build image
docker compose build

# Run containers
docker compose up -d


# ❌ NEVER DO THIS (Data Loss!)
docker compose down -v

# PostgreSQL Backup & Restore
docker exec -t postgres_db pg_dump -U eshop_user eshop_db > backup.sql

# Backup
docker exec -i postgres_db psql -U eshop_user eshop_db < backup.sql


# Restore
docker exec -i postgres_db psql -U eshop_user eshop_db < backup.sql

# Verify Everything
docker ps
docker volume ls

# Monitoring & Debugging
docker logs -f django_app
docker logs -f postgres_db

# Enter container
docker exec -it django_app /bin/sh
# or
docker exec -it django_app /bin/bash

# Django commands inside container
python manage.py migrate
python manage.py createsuperuser
python manage.py shell

# Dockerhub Login
docker login

# Tag image
docker tag django_app:latest your_dockerhub_username/django_app:latest

# Push
docker push your_dockerhub_username/django_app:latest

# Pull & Run (Production Server)
docker pull your_dockerhub_username/django_app:latest

# run
docker run -d \
  --name django_app \
  -p 8080:8000 \
  --env-file .env \
  your_dockerhub_username/django_app:latest

# Docker Compose (Production)
docker compose pull
docker compose up -d

# Useful Docker Commands
| Command                  | Purpose                 |
| ------------------------ | ----------------------- |
| `docker ps`              | List running containers |
| `docker stop <id>`       | Stop container          |
| `docker start <id>`      | Start container         |
| `docker compose up -d`   | Start services          |
| `docker compose down`    | Stop services           |
| `docker compose logs -f` | Follow logs             |


# Permissions Fix (Common Issue)
chmod +x docker/entrypoint.sh
docker compose build web
docker compose up -d

# Final Result
✔ Django + PostgreSQL Dockerized
✔ Media & DB persistence
✔ No data loss
✔ Production-ready
✔ Easy backup & restore

About

Pet Project: Eshop backend with django | Complete React coruse final Assignment

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors