Skip to content

Сервис для сбора статистики по авиабилетам

License

Notifications You must be signed in to change notification settings

KELONMYOSA/CheapestWay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Сервис для сбора статистики по авиабилетам CheapestWay.ru

📃 Содержание

Аналитические задачи

Технологический стек

Архитектура проекта

Запуск приложения

Примеры страниц приложения

📌 Аналитические задачи

  • Зависимость стоимости авиабилета от дня покупки
  • Зависимость стоимости авиабилета от количества дней до вылета
  • Анализ стоимости авиабилета от дня недели покупки
  • Сравнение стоимости авиабилетов различных авиакомпаний

💻 Технологический стек

В данном проекте серверная часть состоит из модуля сбора данных, написанного на Java и работающего с Aviasales API, и Spring-REST сервиса. Клиентская часть реализована с помощью React - TypeScript.

В качестве базы данных используется ClickHouse.

Для связи между сервисами используется брокер сообщений - Apache Kafka, который работает поверх ZooKeeper, распределенного сервиса конфигурирования и синхронизации.

Spring REST принимает обращения к серверу и ставит их в очередь сообщений в Kafka. После чего запрос обрабатывается и отправляет ответ клиенту по протоколуWebSocket.

С клиентской стороны веб-сервер работает на Nginx, который ссылается на Node.js. Веб-приложение написано с помощью библиотеки React. За визуализацию данных отвечает Apache ECharts.

Серверная и клиентская части запускаются в Docker.

🌐 Архитектура проекта

🧑‍💻 Запуск приложения

Server

1. Изменить config.properties
2. Изменить docker-compose.yaml
3. Запустить docker compose
4. Создать таблицы в ClickHouse. Необходимые запросы находятся в CheapestWay_ClickHouse.sql
5. Перезапустить docker compose

Client

1. Изменить docker-compose.yaml
2. Изменить nginx/default.conf
3. В файле nodejs/cheapestway/src/components/SockJS.tsx изменить WebSocket URL
4. Запустить npm install
5. Запустить docker compose

История цен на авиабилеты

Статистика по авиакомпаниям


Copyright © 2022 KELONMYOSA.
Licensed under the Apache License, Version 2.0