Skip to content

javigom/task-manager-backend

Repository files navigation

task-manager-backend

Task Manager API — FastAPI + SQLAlchemy (async) + PostgreSQL + Docker

Features

  • 🚀 FastAPI with async/await support
  • 🗄️ PostgreSQL with SQLAlchemy 2.0 (async)
  • 🔄 Database migrations with Alembic
  • 🐳 Docker & Docker Compose ready
  • 📊 Pydantic v2 for validation
  • 📦 Poetry for dependency management

Installation

git clone https://github.com/javigom/task-manager-backend.git
cd task-manager-backend
cp .env.template .env
docker compose up --build -d

Setup

After installation, run database migrations:

docker compose exec api alembic upgrade head

Usage

Note: Ports are configured in .env via HOST_WEB_PORT (default: 8001) and HOST_DB_PORT (default: 5433)

Common Commands

# View logs
docker compose logs -f api

# Stop services
docker compose down

# Rebuild after code changes
docker compose up --build -d

# Access container shell
docker compose exec api bash

# Create new migration
docker compose exec api alembic revision --autogenerate -m "Description"

Project Structure

├── src/app/          # Application code
│   ├── routers/      # API route handlers
│   ├── models.py     # SQLAlchemy models
│   ├── schemas.py    # Pydantic schemas
│   ├── crud.py       # Database operations
│   ├── auth.py       # Authentication logic
│   ├── config.py     # Configuration
│   ├── db.py         # Database setup
│   └── main.py       # FastAPI app
├── alembic/          # Database migrations
│   └── versions/     # Migration files
├── docker/           # Docker configuration
│   ├── Dockerfile
│   └── docker-compose.yml
└── pyproject.toml    # Poetry dependencies

About

Task Manager API — FastAPI + PostgreSQL + Docker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors