Агрегатор обновлений единого календарного плана спортивных мероприятий Министерства спорта России
- веб-приложение
- хорошо смотрится как на десктопных, так и на мобильных устройствах
- позволяет просматривать список событий
- поддерживает все основные фильтры
- позволяет записываться и отменять запись на события
- позволяет добавлять события в Google Календарь
- поддерживает авторизацию пользователя, в том числе через аккаунт Яндекс
- получает от парсера наборы данных из обновлённого PDF и сопоставляет их с базой, попутно обновляя её
- парсер:
- максимально точно распознаёт содержание PDF-файла
- проверяет актуальность файла по указанию планировщика
- готов к изменению ссылки на файл на странице Минспорта
- планировщик / сервис уведомлений:
- позволяет планировать частоту проверки PDF-файла
- отправляет необходимые уведомления пользователям на почту и в Telegram
- Telegram-бот:
- позволяет входить в учётную запись SportHub
- служит одним из способов получения уведомлений
✅ всё вышеперечисленное упаковано в контейнер Docker и развёрнуто на VDS!
Проект состоит из микросервисов, предназначенных для развёртывания в Docker:
- усовершенствовать систему рекомендаций, чтобы она учитывала больше персональных особенностей
- скопировать больше функционала веб-приложения в Telegram-бот
- добавить больше вариантов просмотра календарного плана
- добавить карту предстоящих событий
- расширить спектр настроек уведомлений
- интегрировать Яндекс.Календарь и другие подобные сервисы
Note
Мы отказались от использования git submodules
и git subtree
из-за периодически возникающей путаницы при
отслеживании изменений в монорепозиториях. Данный репозиторий представляет собой единую точку для работы с проектом,
лишённую этих недостатков.
- Клонируйте репозиторий и перейдите в его папку.
- Клонируйте репозитории сервисов, входящих в состав проекта по SSH (рекомендуется):
git clone git@github.com:code-418-dpr/SportHub-web.git services/SportHub-web
git clone git@github.com:code-418-dpr/SportHub-parser.git services/SportHub-parser
git clone git@github.com:code-418-dpr/SportHub-notification-service.git services/SportHub-notification-service
git clone git@github.com:code-418-dpr/SportHub-bot.git services/SportHub-bot
или по HTTPS:
git clone https://github.com/code-418-dpr/SportHub-web.git services/SportHub-web
git clone https://github.com/code-418-dpr/SportHub-parser.git services/SportHub-parser
git clone https://github.com/code-418-dpr/SportHub-notification-service.git services/SportHub-notification-service
git clone https://github.com/code-418-dpr/SportHub-bot.git services/SportHub-bot
После этого вы можете вносить изменения в каждый из сервисов по-отдельности (в соответствии с инструкциями, описанными в соответствующих README).
- Установите проект по инструкции выше.
- Создайте файл
.env
на основе .env.template и настройте все описанные там параметры. - Установите Docker.
- Теперь запускать проект можно командой:
docker compose up -d --build