Проблема
Группе нужен был простой способ отмечаться на парах и видеть расписание прямо во ВКонтакте, без отдельных приложений и ручных таблиц.
Решение
- Расписание по дням, «Сейчас», «Сегодня», «Завтра».
- Кнопка «Я присутствую» в окно отметки пары, отметка за другую пару, «Кто отметился», личная статистика.
- Еженедельный отчёт каждому студенту.
- Админ-панель: статистика группы, не отметившиеся, выбор пары, смена статуса студента, окно отметки, гибкая отметка, лимит бонусов.
- Синхронизация с Google-таблицей.
Архитектура
- VK Long Pollсобытия сообщений и кнопок
- ОбработчикPHP, сценарии меню
- MySQLстуденты, пары, отметки
- cronанонсы, отчёты, бэкапы
Реализация
Сначала бот работал на CMS-хостинге через Callback API. Потом я перенёс его на собственный VPS: Long Poll вместо колбэков, systemd-сервис, свой слой работы с БД вместо CMS, восстановление данных из резервной копии.