EduManager is a production-ready, scalable backend built with FastAPI and designed around a modular architecture. Each domain (Users, Blog, Bootcamp, Support, etc.) is isolated, testable, and independently extensible — making the project suitable for startup-grade products and future microservice migration.
Test User Account Registration endpoint- ⚡ High-performance FastAPI backend (async-first)
- 🧩 Clean modular architecture (domain-driven structure)
- 🔐 JWT authentication with 3 user roles
- 🗄️ PostgreSQL for reliability and scalability
- 📍 SQLAlchemy ORM with Alembic migrations
- 📚 Auto-generated API docs (Swagger & ReDoc)
- 🧪 Test-ready setup with Pytest
- 🐳 Fully Dockerized (Docker & Docker Compose)
- 👽 CI/CD-friendly design
- 🚀 Microservice-ready architecture
| Category | Technology |
|---|---|
| Language | Python 3.12 |
| Framework | FastAPI 0.117.1 |
| Database | PostgreSQL |
| ORM | SQLAlchemy |
| Migrations | Alembic 1.16.5 |
| Auth | JWT |
| Testing | Pytest |
| Containerization | Docker & Docker Compose |
| Dependency Management | Poetry / pip |
+-------------+ +------------------+
| Client | -----> | FastAPI API |
| (Web/Mobile)| | (Modular Apps) |
+-------------+ +--------+---------+
|
+--------------------------+--------------------------+
| | |
+-------v-------+ +-------v-------+ +-------v-------+
| PostgreSQL DB | | Alembic | | Auth (JWT) |
| Persistence | | Migrations | | Security |
+---------------+ +---------------+ +---------------+
This project is Docker-first. No local Python or database setup is required.
- Docker (v20+)
- Docker Compose (v2+)
Verify:
docker --version
docker compose version# Build and start all services
docker-compose up --builddocker-compose down- API Root: http://localhost:8000
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
All configuration is handled via environment variables.
Create a .env file based on .env.example.
# Application
APP_ENV=production
SECRET_KEY=your-secret-key
# Database
POSTGRES_DB=edumanager
POSTGRES_USER=edumanager
POSTGRES_PASSWORD=edumanager
POSTGRES_HOST=db
POSTGRES_PORT=5432
# JWT
JWT_SECRET_KEY=change-me
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30.env files to version control.
# Run tests
docker-compose exec app pytest- FastAPI Documentation — https://fastapi.tiangolo.com/
- Docker Documentation — https://docs.docker.com/
- Smith, J. (2023). Building Scalable APIs with FastAPI. Medium.
MIT License




