Skip to content

brash-ram/tinkoff-scrapper

Repository files navigation

Stackoverflow Scrapper

Стек технологий

Java Apache Maven Postgres Spring Hibernate Docker Swagger Prometheus Grafana GitHub Actions Telegram

Многомодульное Maven Java приложение с использованием Spring Boot. Приложение позволяет парсить различные ресурсы, например GitHub или StackOverflow, и присылать уведомление об обновлении в телеграмм бота, через которого происходит управление отслеживаемыми ссылками.

Общение сервисов происходит через REST. Отправление обновлений отслеживаемых ресурсов происходит через RabbitMQ, для которого также реализован паттерн Dead Letter Queue.

Существуют реализации доступа к данным через JDBC и SpringData + Hibernate. Для создания базы данных используется механизм миграций Liquibase. Обе реализации покрыты модульными и интеграционными тестами с использованием тест-контейнеров.

Обработка ссылок происходит в отдельном модуле, где обработчики собраны по паттерну Цепочка-обязанностей. С использованием этого паттерна также созданы обработчики команд в сервисе с ботом. Реализован паттерн с использованием Reflection.

Для модулей bot и scrapper API реализовано по спецификации OpenAPI. Для обоих проектов настроен Swagger.

Для модулей написаны Dockerfile. Все модули компилируются независимо от платформы в Docker контейнерах. Для сборки всего проекта создан docker-compose файл.

Для мониторинга настроены Grafana и Prometheus. В Grafana создана доска Tinkoff-scrapper.

Для проекта создан Checkstyle. Также настроен CI/CD на основе сервиса GitHub Actions, где собирается проект, создается Docker Image проекта и выгружается в GitHub Packages, также там проверяется Checkstyle.

Схема базы данных PostgreSQL

Quick Start

Для запуска потребуется указать переменные окружения:

Запуск через докер:

docker compose up -d 

Примеры отслеживаемых ссылок

Endpoints

  • localhost:8080 - Сервис с телеграмм ботом
  • localhost:8090/metrics - Prometheus metrics сервиса с телеграмм ботом
  • localhost:8080/swagger-ui.html - Swagger сервиса с телеграмм ботом
  • localhost:8081 - Парсер-сервис
  • localhost:8081/swagger-ui.html - Swagger парсер-сервиса
  • localhost:8091/metrics - Prometheus metrics парсер-сервиса
  • localhost:3000 - Grafana с добавленной доской Tinkoff-scrapper

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages