Skip to content

StockFlow OMS

Python FastAPI SQLAlchemy Docker Ruff

StockFlow OMS — это проект системы управления заказами, разработанный для демонстрации бэкенд-разработки на Python.

🎯 Цель проекта

Цель репозитория — применение промышленного стека технологий и архитектурных паттернов в бизнес-задаче.

🛡 Что здесь реализовано (Production Standards):

  • Type Safety: Строгая типизация с Mypy (strict mode).
  • Architecture: Модульный монолит с разделением ответственности.
  • Reliability: Работа с конкурентностью в БД.
  • Testing: Изолированные тесты с транзакционным роллбэком (Pytest + AsyncIO).
  • CI/CD: Автоматизация проверок и контейнеризация.
  • Observability: Структурное логирование и готовность к мониторингу.

⚠️ Ограничения (Disclaimer)

Проект является учебным полигоном (Sandbox). В нем упрощены некоторые аспекты (нет подходящей системы аудита, Kubernetes-манифестов и интеграции с внешними платежными шлюзами).

🛠 Технологический стек

  • Core: Python 3.12, FastAPI
  • Database: PostgreSQL 15, SQLAlchemy 2.0 (Async), Alembic
  • Infrastructure: Docker Compose
  • Dev Tools: Pytest, Ruff, Mypy, Pre-commit

🏗 Архитектура

Подробное описание архитектуры см. в ARCHITECTURE.md.

🚀 Быстрый старт

Предварительные требования

  • Python 3.12+
  • Docker & Docker Compose
  • Poetry

Установка и запуск

  1. Клонируйте репозиторий:

    git clone https://github.com/Siriys000/StockFlow-OMS.git
    cd StockFlow-OMS
    

  2. Настройте переменные окружения:

    # Создаем .env из примера
    cp .env.example .env
    # При необходимости отредактируйте .env под свои порты
    

  3. Запустите инфраструктуру (БД):

    docker compose up -d
    

  4. Установите зависимости и примените миграции:

    poetry install
    poetry run alembic upgrade head
    

  5. Запустите сервер:

    poetry run uvicorn src.main:app --reload
    
    Документация API будет доступна по адресу: http://127.0.0.1:8000/docs

  6. Запуск тестов:

    poetry run pytest -v