Приложение для отслеживания обновлений контента по ссылкам. При появлении новых событий отправляется уведомление в Telegram.
Проект написан на Java 21
с использованием Spring Boot 3
.
Проект состоит из 2-х приложений:
- Bot (сервис Телеграм-бота)
- Scrapper (сервис-планировщик, проверяющий обновления по ссылкам, созраненным в бд)
Для работы требуется БД PostgreSQL
и Redis
. Присутствует опциональная зависимость на Kafka
.
Пользователь регистрируется в телеграмм боте, отправляет ссылки на вопрос на StackOverflow или GItHub репозиторий и получает информацию о, например, новом вопросе или новом коммите прямо в мессенджер. Полученная от пользователя ссылка сохранятся в базе данных, затем сервис-планировщик опрашивает указанные ресурсы с настраиваемым промежутком во времени и отправляет информацию об обновлениях, если они были, в сервис телеграмм бота.
Сервисы могут передавать данные либо через RestAPI, либо через Kafka (это настраивается через конфигурационный файл yaml). В роли SQL базы данных используется PostgreSQL, но временно использовалась NoSQL база данных Redis. В дальнейшем она будет выполнять роль кэша в сервисе-планировщике. Также присутствует возможность выбора между jdbc/jooq/hibernate
Помимо всего вышесказанного, в проекте присутствуют юнит тесты и интеграционные тесты c базой данных и Kafka.
Список изменений по версиям: изменения