Сервис представляет собой три взаимосвязанных компонента, обеспечивающих автоматизированный подбор и предоставление информации о выгодных облигациях с использованием данных с Московской Биржи.
Проект реализован по принципам луковой архитектуры, разделяет приложение на слои, где каждый слой имеет свою определенную ответственность.
Проект содержит три сервиса:
- 'fast_app' - Fast API приложение отвечает за представление данных и взаимодействие с пользователем
Описание: Сервис предоставляет HTTP API с использованием FastAPI для запросов и получения информации о выгодных облигациях из базы данных. Клиенты могут отправлять запросы на получение отфильтрованных данных в удобном формате.
- 'moex_app' - aiohttp приложение отвечает за взаимодействие с Moex API
Описание: Сервис регулярно (еженедельно по будням) обращается к Московской Бирже для получения актуальной информации о различных облигациях. Полученные данные сохраняются в базу данных для последующего использования.
- 'db' - сервис PostgreSQL
- Python == 3.10
- fastapi == 0.109
- aiohttp == 3.9
- PostgreSQL == 14.7
- SQLAlchemy == 2.0
- Docker
Файл docker-compose.yaml представляет собой конфигурацию Docker Compose, который используется для оркестрации контейнеров в Docker-среде. Файл определяет три сервиса: 'db' и два приложения 'moex_app' и 'fast_app'.
-
Клонировать репозиторий
git clone ссылка_сгенерированная_в_вашем_репозитории -
Убедитесь, что Docker и Docker Compose установлены на вашем компьютере.
-
Создайте файл .env в том же каталоге, где находится файл docker-compose.yml, и укажите необходимые переменные окружения.
-
При необходимости заменить адрес каталога на адрес каталога вашего компьютера в файле docker-compose.yaml в сервисе 'db'
volumes: - /home/user/Project/data:/var/lib/postgresql/data -
Откройте терминал в каталоге с файлом docker-compose.yml.
-
Запустите команду:
docker-compose buildдля сборки образа сервисов. -
Запустите команду:
docker-compose upдля запуска контейнеров
Сервисы 'db', 'moex_app' и 'fast_app' должны быть запущены и доступны в соответствии с указанными портами.