A full-featured backend for a simplified Jira clone. Provides JWT-based auth, role-based access control, and REST APIs for projects, tasks, and analytics.
https://api-mini-jira.billymosis.com/
https://api-mini-jira.billymosis.com/api/schema/swagger-ui/
https://api-mini-jira.billymosis.com/api/schema/swagger-ui/
file: apps/users/migrations/0002_auto_20250626_0706.py
admin:admin123
member1:member123
member2:member123
to seed the database:
python manage.py seed
apps/users/
– Authentication, user profiles, rolesapps/projects/
– Project creation and listingapps/tasks/
– Task CRUD and assignmentapps/analytics/
– Simple analytics endpoints
Roles handled by using built in django groups
- Admin: Can create/edit/delete any project/task
- Member: Can create/edit/delete task
source .venv/bin/activate
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
Live demo deployed with aws EC2
- Docker build
docker build -t mini-jira-be .
- Setup docker compose file for better developer experience
services:
web:
image: mini-jira-be:latest
restart: unless-stopped
ports:
- "80:8000"
environment:
- PYTHONUNBUFFERED=1
- AWS_S3_ACCESS_KEY_ID=A********
- AWS_S3_SECRET_ACCESS_KEY=WIX************
- AWS_STORAGE_BUCKET_NAME=super-*********
- AWS_S3_REGION_NAME=ap-southeast-1 # Optional
- AWS_S3_SIGNATURE_VERSION=s3v4 # Optional
- SECRET_KEY=b22***************
- DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1,13.229.114.236,api-mini-jira.billymosis.com
- DJANGO_ALLOWED_ORIGINS=http://localhost,http://jira.billymosis.com,https://jira.billymosis.com,http://*.billymosis.com,https://*.billymosis.com
- DEBUG=True
volumes:
- db_data:/app/db
- ./staticfiles:/app/staticfiles
volumes:
db_data: # Named volume for SQLite database
- docker compose pull
- docker compose
- UV
- Django
- Django rest framework
- Django simple jwt auth
- drf-spectacular (OPEN API SCHEMA)
- Task Management
- Project Management
- User Avatar Upload
- Basic Analytics
- Schema api/schema/swagger-ui/
- Unit test
- Logging
- Enhance user auth
- mkdir mini-jira-clone
- cd mini-jira-clone
- uv init
- uv venv
- source .venv/bin/activate
- uv pip install django djangorestframework djangorestframework-simplejwt
- django-admin startproject config .
- cd apps
- uv run django-admin startapps tasks
- mkdir apps/tasks -p
- python manage.py startapp tasks apps/tasks
- python manage.py startapp users apps/users
- mkdir -p apps/projects
- python manage.py startapp projects apps/projects
- Seed groups, permissions and users
- python manage.py makemigrations users --empty
- python manage.py startapp analytics apps/analytics