Backend engineering · Python · REST API

Multi-Tenant SaaS
Project Management

A production-style backend system where multiple organizations share one platform with strict data isolation — built with FastAPI, PostgreSQL, Celery, and Docker.

At a glance

7
API endpoints
4
DB entities
3
Middleware layers
84
Git commits

Tech stack

Python FastAPI PostgreSQL SQLAlchemy Alembic Celery Redis JWT Auth Docker Pytest Render

System architecture

Request lifecycle
Client
Middlewarerate limit · logging · tenant
API routes
Service layer
Repository
PostgreSQL
Async jobs
Celery worker
Redis broker

Endpoints

POST
/auth/login
JWT token issuance
POST
/organizations/
Create organization (tenant)
GET
/organizations/
List organizations
POST
/projects/
Create project
GET
/projects/
Get projects (scoped by org)
POST
/tasks/
Create task
GET
/tasks/
Get tasks (scoped by org)

Key concepts demonstrated

Multi-tenancy
Org-scoped data isolation across all entities via tenant context middleware
JWT authentication
Stateless token-based auth with secure password hashing
Layered architecture
Clean separation: routes → services → repositories → models
Async background jobs
Celery + Redis for non-blocking task processing
Database migrations
Alembic for version-controlled schema management
Rate limiting
Middleware-level request throttling to prevent API abuse