Мой первый проект — бот для ведения расписания и домашних заданий в беседах ВКонтакте.
Код хаотичный, но он работает...
📄 Документация проекта: docs/presentation.pptx | docs/report.docx
- Расписание — заполнение и просмотр расписания на неделю
- Домашние задания — добавление ДЗ к конкретным урокам (до 3 штук на урок)
- Заметки — общие заметки для всей беседы
- Личный кабинет — у каждого пользователя своё расписание и ДЗ, синхронизированное с чатом
- Кнопки и карусели — удобная навигация через интерактивные элементы
- Перейти на vk.com/groups → "Создать сообщество"
- Выбрать тип "Беседа" или "Страница" (подойдёт любой)
- Назвать сообщество, например:
"Бот расписание"
Токен — это ключ, который позволяет боту управлять сообществом.
- Открыть Управление сообществом → Работа с API
- Нажать "Создать ключ"
- Отметить галочкой права:
- ✅ Сообщения сообщества
- ✅ Доступ к сообщениям
- ✅ Управление беседой (необходимо для кнопок)
- Скопировать полученный токен — он понадобится в
.envфайле
ID находится в адресной строке: vk.com/clubXXXXXXXX — число после club и есть ID.
Важно: Боту необходимо выдать права администратора в беседе. Без этого бот не сможет читать сообщения.
Как выдать права:
- В беседе → "Управление" → "Участники" → найти бота (по названию сообщества) → выдать права администратора
Затем в беседе написать:
создать чат
создать аккаунт
Бот ответит:
✅ Ваш чат зарегистрирован.
✅ Ваш аккаунт зарегистрирован.
Перейти в личные сообщения
После этого бот готов к работе! 🎉
Только администраторы беседы могут заполнять расписание.
бот уроки понедельник Математика Русский Физика Информатика
После этого бот покажет заполненные уроки.
- Python 3.8 или выше
- Библиотеки:
vk-api,python-dotenv
# 1. Клонировать репозиторий
git clone https://github.com/codedarlie/vk-homework-bot.git
cd vk-homework-bot
# 2. Установить зависимости
pip install -r requirements.txt
# 3. Создать файл с секретами
cp .env.example .env
# 4. Отредактировать .env — вставить свои токен и ID
nano .env # или открыть в любом текстовом редакторе
# 5. Запустить бота
python bot.py# Токен сообщества (получить: Управление → Работа с API)
VK_TOKEN=ваш_токен_здесь
# ID сообщества (число после club в ссылке)
GROUP_ID=198765432
# Личный VK ID разработчика (для отладки)
ADMIN_ID=123456789
⚠️ Важно: Файл.envдобавлен в.gitignore— не следует загружать его в репозиторий с токеном!
vk-homework-bot/
├── bot.py # Основной файл бота
├── config.py # Загрузка переменных из .env
├── .env # Секреты (не в git)
├── .env.example # Пример .env (в git)
├── .gitignore
├── requirements.txt # Зависимости (vk-api, python-dotenv)
├── server2.db # База данных SQLite (создаётся автоматически)
└── docs/
├── presentation.pptx # Презентация проекта
└── report.docx # Отчёт по проекту
ℹ️ Важно: Бот реагирует только на сообщения в беседах (групповых чатах). В личных сообщениях работают только кнопки.
| Команда | Описание | Пример |
|---|---|---|
создать чат |
Зарегистрировать беседу в БД | создать чат |
удалить чат |
Удалить беседу и все данные | удалить чат |
бот уроки <день> <список уроков> |
Заполнить расписание (макс. 8 уроков) | бот уроки понедельник Математика Русский Физика |
бот заменить урок <день> <номер> <новый урок> |
Заменить конкретный урок | бот заменить урок понедельник третий Информатика |
расписание |
Показать расписание | расписание |
все домашнее |
Показать всё ДЗ | все домашнее |
домашнее на завтра |
ДЗ на завтра | домашнее на завтра |
домашнее на сегодня |
ДЗ на сегодня | домашнее на сегодня |
домашнее на послезавтра |
ДЗ на послезавтра | домашнее на послезавтра |
заметки |
Показать все заметки | заметки |
бот заметка <текст> |
Создать заметку | бот заметка Купить молоко |
бот удалить заметку <номер> |
Удалить заметку (1-5) | бот удалить заметку 2 |
удалить дз <номер> <урок> |
Удалить ДЗ (1-3 — 1 самое давнее) | удалить дз 1 Математика |
удалить все дз <урок> |
Удалить урок и всё его ДЗ | удалить все дз Математика |
показать код |
Показать ID беседы | показать код |
| Команда | Описание | Пример |
|---|---|---|
создать аккаунт |
Зарегистрировать свой профиль | создать аккаунт |
удалить аккаунт |
Удалить свои данные | удалить аккаунт |
дз <урок> <текст> |
Добавить ДЗ по уроку | дз Математика №345 стр.12 |
дз личное <текст> |
Добавить личное ДЗ | дз личное Позвонить маме |
бот заметка <текст> |
Создать заметку | бот заметка Важная встреча |
В личных сообщениях бота доступно удобное меню с кнопками:
| Кнопка | Что делает |
|---|---|
| Домашнее | Открывает меню ДЗ (на сегодня/завтра/послезавтра/всё) |
| На завтра | ДЗ на завтрашний день |
| Расписание | Показывает расписание на неделю (карусель) |
| Заметки | Показать личные заметки |
| Другое → Инфо → Команды | Список команд |
| Удалить | Удалить аккаунт или личные заметки |
Администратор: создать чат
Бот: ✅ Ваш чат зарегистрирован.
Администратор: создать аккаунт
Бот: Создание аккаунта...
Бот: ✅ Ваш аккаунт зарегистрирован.
Перейти в личные сообщения [кнопка]
Администратор: бот уроки понедельник Математика Русский Физика
Бот: ✅ Заполнены уроки чата в день 'Понедельник' :
Первый Урок: Математика
Второй Урок: Русский
Третий Урок: Физика
Пользователь: дз Математика параграф 10, №345-348
Бот: [01.12]: Домашнее заполнено в базу чата.
[01.12]: Добавлено домашнее на урок "Математика":
параграф 10, №345-348
При нажатии кнопки "Домашнее" → "На сегодня" бот пришлёт:
ДОМАШНЕЕ ЧАТА
📘 №1 МАТЕМАТИКА
[01.12] параграф 10, №345-348
📘 №2 РУССКИЙ
[29.11] сочинение про зиму
ДОМАШНЕЕ АККАУНТА
📘 №3 ЛИТЕРАТУРА
[01.12] прочитать 3 главу
Причина: Бот не имеет прав администратора.
Решение: В беседе → Управление → Участники → найти бота → выдать права администратора.
Причина: Не выполненa привязка VK ID к беседе.
Решение: Написать в беседе: создать аккаунт
Причина: Бот написан только для бесед. В ЛС работают только кнопки после регистрации.
Решение: Администратор должен выполнить: создать чат
Решение: Некоторые команды доступны только создателю беседы или пользователям с правами администратора.
Решение: В базе данных ограничение — максимум 30 уроков на чат и 5 личных уроков. Следует удалить ненужные командой удалить все дз <урок>.
- Расписание на каждый день недели (до 8 уроков)
- До 30 уроков с домашними заданиями (до 3 на урок)
- До 5 общих заметок
- Хранится
chat_id— идентификатор беседы
Аналогичная структура, но для каждого пользователя отдельно:
- Расписание (синхронизируется с чатом при регистрации)
- Личные уроки (до 5)
- Личные заметки (до 5)