Этот репозиторий содержит два сервиса:
schelude/— Spring Boot-приложение (Java 21), которое синхронизируется с личным кабинетом СамГТУ, парсит данные о сообщениях, заданиях и оценках и складывает их в PostgreSQL.pythonbot/— Telegram-бот, который по запросу и по расписанию синхронизируется с Java API и пересылает новые сообщения пользователю.
Связка сервисов разворачивается через docker-compose.yml, где также поднимается PostgreSQL.
- Docker + Docker Compose v2.
- При локальной разработке без Docker: JDK 21, Gradle (обёртка уже в проекте), Python 3.11+.
- Данные для авторизации в ЛК СамГТУ.
- Токен Telegram-бота и ваш
chat_id.
Создайте в корне файл .env (не попадает в git) и заполните:
POSTGRES_DB=schedule
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
# Данные личного кабинета
SAMGTU_USERNAME=your_login
SAMGTU_PASSWORD=your_passwordОбратите внимание:
- Java-приложение читает
SPRING_DATASOURCE_*иLK_SAMGTU_CREDENTIALS_*из переменных, которые пробрасываются в compose. - Python-бот использует
JAVA_API_URL(по умолчаниюhttp://localhost:5051). В режиме Docker его трогать не нужно. - В
pythonbot/bot.pyвручную задайте:- значение
MY_CHAT_ID; - токен в
Application.builder().token("<TELEGRAM_TOKEN>").
- значение
docker compose up --buildЧто произойдёт:
- PostgreSQL поднимется и создаст volume
postgres-data. scheludeсоберётся через Gradle, применит миграции (DDL auto = update) и подключится к базе.pythonbotдождётся Java API и начнёт опрашивать/schedule/sync,/msg/newmsg,/task/newtask,/grade/newgrade.
Чтобы остановить сервисы и сохранить данные в volume:
docker compose downdocker-compose.yml— оркестрация PostgreSQL, Spring Boot и Telegram-бота.schelude/— исходники Spring Boot, включая контроллеры (controller/), сервисы (services/), сущности и репозитории.pythonbot/— код Telegram-бота, Dockerfile и зависимости.