Skip to content

EnzoLu1337/SamGTU-checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Расписание: микросервис и Telegram-бот

Этот репозиторий содержит два сервиса:

  1. schelude/ — Spring Boot-приложение (Java 21), которое синхронизируется с личным кабинетом СамГТУ, парсит данные о сообщениях, заданиях и оценках и складывает их в PostgreSQL.
  2. 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)

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 down

Структура проекта

  • docker-compose.yml — оркестрация PostgreSQL, Spring Boot и Telegram-бота.
  • schelude/ — исходники Spring Boot, включая контроллеры (controller/), сервисы (services/), сущности и репозитории.
  • pythonbot/ — код Telegram-бота, Dockerfile и зависимости.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors