StockFlow OMS¶
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
Установка и запуск¶
-
Клонируйте репозиторий:
-
Настройте переменные окружения:
-
Запустите инфраструктуру (БД):
-
Установите зависимости и примените миграции:
-
Запустите сервер:
Документация API будет доступна по адресу: http://127.0.0.1:8000/docs -
Запуск тестов: