Go to file
k1nq a97a76381f feat: add Docker support and database migrations
- Created Dockerfile for building and running the application with Uvicorn.
- Added docker-compose.yml to manage application and PostgreSQL service.
- Introduced Alembic migrations with initial schema for CRM domain objects.
- Configured async SQLAlchemy engine for migrations.
- Updated dependencies in uv.lock to include asyncpg, passlib, and pyjwt.
2025-11-22 14:51:20 +05:00
app feat: add Docker support and database migrations 2025-11-22 14:51:20 +05:00
migrations feat: add Docker support and database migrations 2025-11-22 14:51:20 +05:00
.dockerignore feat: add Docker support and database migrations 2025-11-22 14:51:20 +05:00
.gitignore Initial commit 2025-11-22 07:35:06 +00:00
.python-version Init project structure 2025-11-22 13:56:45 +05:00
LICENSE Initial commit 2025-11-22 07:35:06 +00:00
README.md Init project structure 2025-11-22 13:56:45 +05:00
alembic.ini feat: add Docker support and database migrations 2025-11-22 14:51:20 +05:00
docker-compose.yml feat: add Docker support and database migrations 2025-11-22 14:51:20 +05:00
main.py Init project structure 2025-11-22 13:56:45 +05:00
pyproject.toml Init project structure 2025-11-22 13:56:45 +05:00
uv.lock feat: add Docker support and database migrations 2025-11-22 14:51:20 +05:00

README.md

Test Task CRM

FastAPI backend template that follows the architecture described in the system prompt: async SQLAlchemy ORM, Alembic-ready models, service/repository layers, JWT auth helpers, and Pydantic v2 schemas.

Quick start

  1. Create a .env file based on variables in app/core/config.py.
  2. Install dependencies:
    uv sync
    
  3. Run the development server:
    uv run python main.py
    

Project layout

app/
  api/            # FastAPI routers and dependencies
  core/           # Settings, database, security helpers
  models/         # SQLAlchemy models and Pydantic schemas
  repositories/   # Data access layer (SQLAlchemy ORM usage)
  services/       # Business logic (auth, users, etc.)

Add new routers under app/api/v1, repositories under app/repositories, and keep business rules inside app/services.