Проект представляет собой простой бэкенд для кредитной карты с возможностью изменения лимита по верификации фото (реализовано с помощью DeepFace). Проект состоит из трёх микросервисов:
- Auth: Служит для аутентификации пользователей и проксирования запросов.
- Balance: Отвечает за операции с кредитной картой.
- Verify: Сравнивает две фотографии (ожидаемо, документ и селфи) для верификации. При совпадении повышает кредитный лимит, при несовпадении — уменьшает.
Детальная инструкция по запуску проекта находится в CONTRIBUTING.md. Проект может быть развернут как в Kubernetes, так и локально с использованием Docker Compose.
/api/auth
: Авторизация на сервисе Auth./api/withdrawal
: Снятие средств с карты./api/deposit
: Пополнение средств на карте./api/verify
: Верификация пользователя./api/balance
: Просмотр текущего баланса карты./api/balance/history
: Просмотр истории операций по карте./ready
: Readiness probe для Kubernetes./live
: Liveness probe для Kubernetes.
- Python: Версия 3.10.
- DeepFace: Фреймворк для сравнения фотографий.
- Poetry: Управление зависимостями проекта.
- Kafka & Zookeeper: Для передачи сообщений между микросервисами.
- PostgreSQL: В качестве базы данных.
- Kubernetes: Манифесты находятся в папке
k8s
. Также доступны Helm charts в папкеgran-cc
. - Docker & Docker Compose: Конфигурации и манифесты находятся в папке
docker
. - Alembic: Для миграции баз данных.
- Prometheus & Jaeger: Мониторинг и трейсинг для Kubernetes.
- Pytest: Код покрыт тестами.
- wemake-python-styleguide & mypy Как основные линтеры.