Skip to content

Агрегатор обновлений PDF-файла единого календарного плана спортивных мероприятий Минспорта РФ

License

Notifications You must be signed in to change notification settings

code-418-dpr/SportHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SportHub

license release downloads code size

Агрегатор обновлений единого календарного плана спортивных мероприятий Министерства спорта России

Особенности реализации

  • веб-приложение
    • хорошо смотрится как на десктопных, так и на мобильных устройствах
    • позволяет просматривать список событий
    • поддерживает все основные фильтры
    • позволяет записываться и отменять запись на события
    • позволяет добавлять события в Google Календарь
    • поддерживает авторизацию пользователя, в том числе через аккаунт Яндекс
    • получает от парсера наборы данных из обновлённого PDF и сопоставляет их с базой, попутно обновляя её
  • парсер:
    • максимально точно распознаёт содержание PDF-файла
    • проверяет актуальность файла по указанию планировщика
    • готов к изменению ссылки на файл на странице Минспорта
  • планировщик / сервис уведомлений:
    • позволяет планировать частоту проверки PDF-файла
    • отправляет необходимые уведомления пользователям на почту и в Telegram
  • Telegram-бот:
    • позволяет входить в учётную запись SportHub
    • служит одним из способов получения уведомлений

✅ всё вышеперечисленное упаковано в контейнер Docker и развёрнуто на VDS!

Демо

Здесь будут скриншоты, возможно даже видео.

Архитектура

Проект состоит из микросервисов, предназначенных для развёртывания в Docker:

В планах

  • усовершенствовать систему рекомендаций, чтобы она учитывала больше персональных особенностей
  • скопировать больше функционала веб-приложения в Telegram-бот
  • добавить больше вариантов просмотра календарного плана
  • добавить карту предстоящих событий
  • расширить спектр настроек уведомлений
  • интегрировать Яндекс.Календарь и другие подобные сервисы

Установка

Note

Мы отказались от использования git submodules и git subtree из-за периодически возникающей путаницы при отслеживании изменений в монорепозиториях. Данный репозиторий представляет собой единую точку для работы с проектом, лишённую этих недостатков.

  1. Клонируйте репозиторий и перейдите в его папку.
  2. Клонируйте репозитории сервисов, входящих в состав проекта по 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).

Запуск

  1. Установите проект по инструкции выше.
  2. Создайте файл .env на основе .env.template и настройте все описанные там параметры.
  3. Установите Docker.
  4. Теперь запускать проект можно командой:
docker compose up -d --build

About

Агрегатор обновлений PDF-файла единого календарного плана спортивных мероприятий Минспорта РФ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published