Проект представляет собой простой бэкенд для кредитной карты с возможностью изменения лимита по верификации фото (реализовано с помощью 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 Как основные линтеры.