โค๏ธ For kelaasor platform
A scalable and modular backend built with Django REST Framework, featuring JWT authentication, Redis caching, Celery background tasks, and multiple apps including User Account, Bootcamp, Ticket, Support, and Blog.
A production-ready Django REST API project with:
- ๐ JWT authentication
- โ๏ธ Rate limiting
- โก Redis caching
- ๐ Celery background tasks
- postgreSQL
- ๐งฉ Modular apps: useraccount, bootcamp, ticket, support, and blog
This project is built using modern and production-ready technologies to ensure performance, scalability, and clean architecture.
- ๐ Python 3.11
- ๐งฑ Django 5.x
- โก Django REST Framework (DRF) โ for building robust RESTful APIs
- ๐ JWT Authentication โ secure user authentication using JSON Web Tokens
- ๐ค UserAccount โ user management & authentication
- ๐ Bootcamp โ training or course management
- ๐๏ธ Ticket โ ticketing & issue tracking system
- ๐ฌ Support โ support chat / helpdesk functionality
- ๐ฐ Blog โ article publishing & content management
- ๐งฎ Rate Limiting โ API request throttling using DRF throttles
- โก Caching with Redis โ improving performance and response time
- ๐ Background Tasks with Celery + Redis โ for async task processing (emails, notifications, etc.)
- ๐ PostgreSQL โ main relational database
- ๐งฐ Redis โ in-memory cache and message broker
- ๐ณ Docker & Docker Compose โ containerized environment setup
- ๐งช Pytest / Django Test Framework โ testing and CI-ready setup
- ๐งน Black / isort / flake8 โ code formatting and linting
- โ๏ธ Environment Variables (.env) โ secure configuration management
Django + DRF โ PostgreSQL โ Redis โ Celery โ Docker
# Kelassor โ Django REST Framework
Production-ready Django REST Framework project, fully containerized with Docker Compose. This setup is designed for **consistent development**, **team collaboration**, and **production-like environments**.
---
## ๐ Quick Start (Docker Compose โ Recommended)
This project runs **exclusively via Docker Compose**. No local Python, PostgreSQL, or Redis installation is required.
### Prerequisites
* Docker (v20+)
* Docker Compose (v2+)
Verify installation:
```bash
docker --version
docker compose version
# 1. Clone the repository
git clone https://github.com/Amir-hash19/Final_Project.v2-DRF.git
cd Kelassor
# 2. Create environment file
cp .env.example .env
# 3. Build and start services
docker-compose up --buildThis will start all required services automatically.
- API: http://localhost:8000
- Admin Panel: http://localhost:8000/admin
+-------------+ +-------------+
| Client | -----> | Django |
| (Browser / | | REST API |
| Mobile) | +------+------+
+-------------+ |
|
+---------------------+---------------------+
| | |
+-------v-------+ +-------v-------+ +-------v-------+
| PostgreSQL DB | | Redis | | Celery |
| (Data) | | (Cache/Broker)| | Workers |
+---------------+ +---------------+ +---------------+
All configuration is managed via environment variables.
Create a .env file based on .env.example.
# Django
DJANGO_SECRET_KEY=your-secret-key
DJANGO_DEBUG=False
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
# Database
POSTGRES_DB=kelassor
POSTGRES_USER=kelassor
POSTGRES_PASSWORD=kelassor
POSTGRES_HOST=db
POSTGRES_PORT=5432
# Redis
REDIS_HOST=redis
REDIS_PORT=6379
# Celery
CELERY_BROKER_URL=redis://redis:6379/0
CELERY_RESULT_BACKEND=redis://redis:6379/0.env files to version control.
docker-compose exec app python manage.py migrate
docker-compose exec app python manage.py createsuperuser
docker-compose exec app python manage.py collectstaticdocker-compose exec app isort .
docker-compose exec app black .docker-compose down- Source code is mounted as a Docker volume (hot reload enabled)
- Static files are collected automatically on startup
- Celery workers run as separate services
- Formatting is enforced using Black + isort
Running the project outside Docker is not supported.
Docker Compose is the single source of truth for development and deployment.
- Django & Django REST Framework
- PostgreSQL
- Redis
- Celery
- Docker & Docker Compose
This project is licensed under the MIT License.
