- API на FastApi
- База данных для хранения пользовательских данных Postgres
- Для хранения изображений (аватарок) в качестве облако Yandex Disk
- Обработка изображений выведена в отдельный сервис, дабы разгрузить API сервис и убрать CPU-Bound операции, да и транзит обработанной фотографии в "облако" может проходить без участия API сервиса
- Определение геолокации (по заданию необходимо проводить поиск ближайших участников) выведена в отдельный сервис. Определение геолокации производится по IP, более точную систему определения брать не стал так как, зачастую провайдеры просят не кэшировать данные, а без этих данных производить поиск неудобно.
- Операции по работе с геолокацией и изображениями производятся через RPC. Суть: API сервис кидает задания в брокер сообщений RabbitMQ в соответствующею очередь. На другом о конце данные задания подхватывает соответствующий сервис который производит необходимые манипуляции с данными и отправляет их дальше. Геолокация - данные отправляет в БД, Обработка изображений - данные отправляет в "облако", а ссылку на картинку отправляет в БД.
Шаг 1: установите Docker, если еще не установлен.
Шаг 2: скачайте репозиторий
Шаг 3: запустите:
docker-compose up --build
Шаг 4: При первом запуске, зайдите в контейнер docker exec -t dating bash
далееalembic upgrade head
, создадим таблицы в Postgres