Это основной репозиторий для платформы активного отдыха, которая позволяет пользователям выбирать направления отдыха, планировать маршруты, рассчитывать стоимость поездок и взаимодействовать с другими путешественниками через социальную сеть.
Платформа предоставляет пользователям возможность:
- Выбрать направление активного отдыха (дайвинг, хайкинг, и другие).
- Выбрать локацию для конкретной активности.
- Получить готовые маршруты отдыха и подробное описание поездки.
- Рассчитать маршруты с учетом доступных транспортных средств (автомобиль, поезд, авиа) и стоимости билетов через сторонние API.
- Получить ссылки на билеты и возможность сохранить маршрут в PDF или поделиться им через мессенджеры.
- Найти попутчиков через соцсеть и отзывы о маршрутах.
Проект построен на микросервисной архитектуре с использованием современных технологий для обеспечения масштабируемости и надежности.
В этом репозитории находятся все необходимые компоненты для запуска платформы, включая настройки оркестрации и взаимодействия между микросервисами. Для каждого микросервиса будет использоваться отдельный сабмодуль, подключаемый к основному репозиторию.
- gateway-service – единая точка входа для всех запросов, маршрутизация, аутентификация, кэширование.
- auth-service — Авторизация и аутентификация пользователей.
- users-service — Управление профилями пользователей, сохранение истории поездок.
- activities-service — Управление активностями и их сезонностью.
- locations-service — Управление локациями для активностей.
- plans-service — Генерация планов отдыха.
- routes-service — Расчет маршрутов (в будущем с ИИ).
- departure-service — Управление точками отправления.
- pricing-service — Расчет стоимости поездок.
- pdf-service — Генерация PDF-отчетов.
- bot-service — Telegram-бот с поддержкой FAQ.
- Бэкенд: FastAPI
- Межсервисное взаимодействие: RabbitMQ
- Фоновые задачи: Celery
- Кэширование: Redis
- База данных: PostgreSQL
- Мониторинг: Prometheus + Grafana
- Логи: Loki + Promtail
- Оркестрация: Kubernetes
- Балансировка трафика: Traefik/NGINX Ingress Controller
- PDF-генерация: ReportLab или WeasyPrint
- Telegram-бот: aiogram
Проект состоит из нескольких микросервисов, взаимодействующих между собой с использованием RabbitMQ для сообщений и Redis для кэширования. Для оркестрации используется Kubernetes, а для управления трафиком и балансировки — Traefik или NGINX Ingress Controller.