Skip to content

Amir-hash19/Education_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 EduManager – FastAPI Modular Backend

Demo

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

Test User Account Registration endpoint

🚀 Key Features

  • ⚡ 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

🧰 Tech Stack

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

🧱 Architecture Overview

+-------------+        +------------------+
|   Client    | -----> |   FastAPI API    |
| (Web/Mobile)|        |  (Modular Apps) |
+-------------+        +--------+---------+
                                   |
        +--------------------------+--------------------------+
        |                          |                          |
+-------v-------+          +-------v-------+          +-------v-------+
| PostgreSQL DB |          |   Alembic     |          |   Auth (JWT)  |
|   Persistence |          |  Migrations   |          |   Security    |
+---------------+          +---------------+          +---------------+

🐳 Run with Docker Compose (Recommended)

This project is Docker-first. No local Python or database setup is required.

Prerequisites

  • Docker (v20+)
  • Docker Compose (v2+)

Verify:

docker --version
docker compose version

▶️ Build & Start

# Build and start all services
docker-compose up --build

⛔ Stop Services

docker-compose down

🌐 API Access


⚙️ Environment Variables

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

⚠️ Never commit .env files to version control.


🧪 Development & Testing

# Run tests
docker-compose exec app pytest

📸 Screenshots


📖 References


📄 License

MIT License

About

RESTful API built with FastAPI featuring JWT authentication, PostgreSQL, Redis, and Celery for scalable education platforms.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages