🏫 School Telegram Bot + Mini App
# 🔐 ШИВРОВАЛЬЩИК · 1941-1945
### Школьный Telegram-бот + образовательная Telegram Mini App
[](https://github.com/ygud2962/telegram-bot)
[](https://ygud2962.github.io/telegram-bot/)
| Компонент | Версия |
|---|---|
| 🤖 Bot | **8.0.0** |
| 🎮 Game | **1.2.15** |
[](https://t.me/school_hoiniki_sch3_bot)
[](https://www.python.org/)
[](https://www.postgresql.org/)
[](https://railway.app/)
[](https://groq.com/)
**Расписание · Замены · Новости · ИИ-помощник · Игра "Шивровальщик"**
[📱 Открыть бота](https://t.me/school_hoiniki_sch3_bot) · [🎮 Играть в Шивровальщика](https://ygud2962.github.io/telegram-bot/)
✨ Что это
Единая школьная система в Telegram:
- бот для учеников, родителей, учителей и администраторов;
- оперативные замены и новости;
- Telegram Mini App игра “Шивровальщик” с рейтингом и достижениями.
⚡ Основные возможности
- 📚 Расписание по классам и учителям (день/неделя/сейчас).
- 🔄 Замены уроков (вручную и через фото с ИИ-распознаванием).
- 📣 Новости школы с публикацией и рассылкой.
- ⭐ Раздел “Избранное” для быстрого доступа.
- 🤖 ИИ-помощник (режимы ученик/педагог).
- 🎮 Игра “Шивровальщик” с синхронизацией прогресса.
- 👑 Админ-панель: пользователи, техрежим, игра, аналитика.
🎮 Игра “Шивровальщик”
Мини-игра о событиях 1941-1945 годов на территории Беларуси:
- 6 глав и 36 заданий;
- 6 типов шифров;
- таблица лидеров и достижения;
- доступ через кнопку
🎮 Шивровальщик в боте.
🚀 Быстрый старт
git clone https://github.com/ygud2962/telegram-bot.git
cd telegram-bot
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/macOS:
# source venv/bin/activate
pip install -r requirements.txt
python bot.py
⚙️ Переменные окружения
| Переменная |
Обязательно |
Описание |
BOT_TOKEN |
✅ |
Токен Telegram-бота |
DATABASE_URL |
✅ |
Подключение к PostgreSQL |
GAME_URL |
✅ |
Публичный URL игры |
BOT_PUBLIC_URL |
✅ |
Публичный URL бота для /game_sync, /game_state и /game_leaderboard |
BOT_VERSION |
⛳ |
Версия бота (по умолчанию 8.0.0) |
GAME_VERSION |
⛳ |
Версия игры (по умолчанию 1.2.15) |
GROQ_API_KEY |
⛳ |
Ключ Groq для ИИ-помощника |
GAME_BETA |
⛳ |
Режим беты игры (0 или 1) |
GAME_AUTH_REQUIRED |
⛳ |
Обязательная проверка Telegram init_data для API игры (1 по умолчанию) |
GAME_AUTH_TTL_SEC |
⛳ |
Срок жизни init_data в секундах (по умолчанию 86400) |
🔄 Автообновление версий в README
В проекте есть скрипт:
python scripts/update_readme_versions.py
Он автоматически берёт версии из bot.py (BOT_VERSION и GAME_VERSION) и обновляет:
- блок
AUTOVERSION в начале README;
- значения по умолчанию в таблице переменных окружения.
Скрипт также запускается в deploy.bat перед коммитом/пушем.
🧱 Стек
python-telegram-bot 20.x
aiohttp
httpx
PostgreSQL
pytz
- HTML/CSS/Vanilla JS (Mini App)
🗂 Структура проекта
telegram-bot/
├─ bot.py
├─ database.py
├─ game/
│ ├─ index.html
│ └─ game.js (legacy-файл, текущий runtime использует inline-скрипт в `index.html`)
├─ scripts/
│ ├─ deploy-vscode.ps1
│ └─ update_readme_versions.py
├─ deploy.bat
├─ requirements.txt
└─ README.md
🧪 Проверки перед деплоем
python -m py_compile bot.py database.py game_security.py
python -m unittest tests.test_game_security
python scripts/update_readme_versions.py
Рекомендуется проверить вручную в Telegram:
/version
- Главное меню и кнопки
- Разделы
Расписание, Замены, Новости
- Открытие Mini App и синхронизацию игры
💬 Контакты
📜 Лицензия
Проект создан в образовательных целях.
Использование кода разрешено с указанием автора.
© 2026 ГУО “Средняя школа №3 г. Хойники”