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

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SportHub

license release

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

Демо

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

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

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

Архитектура

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

В планах

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

Установка

Note

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

  1. Клонируйте репозиторий и перейдите в его папку.
  2. Клонируйте репозитории сервисов, входящих в состав проекта по SSH (рекомендуется):
git clone [email protected]:code-418-dpr/SportHub-web.git services/SportHub-web
git clone [email protected]:code-418-dpr/SportHub-parser.git services/SportHub-parser
git clone [email protected]:code-418-dpr/SportHub-notification-service.git services/SportHub-notification-service

или по 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

После этого вы можете вносить изменения в каждый из сервисов по-отдельности (в соответствии с инструкциями, описанными в соответствующих README).

Запуск и модификация

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

При модификации сервисов проекта и их тестировании может потребоваться создание файлов .env для каждого из них. Однако, при запуске всех сервисов в одном контейнере (из этого репозитория) их не должно быть. Чтобы не удалять их, для запуска сервисов на локальном устройстве можно воспользоваться следующим набором команд:

mv ./services/SportHub-web/.env ./services/SportHub-web/_.env
mv ./services/SportHub-parser/.env ./services/SportHub-parser/_.env 
docker compose --profile local up -d --build
mv ./services/SportHub-web/_.env ./services/SportHub-web/.env 
mv ./services/SportHub-parser/_.env ./services/SportHub-parser/.env

About

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

Topics

Resources

License

Stars

Watchers

Forks