Задача
Road Abroad — онлайн-школа иностранных языков. Ученик оставляет заявку, покупает пакет часов и занимается с учителем по расписанию. Без системы всё это держалось бы на почте и таблицах: кто сколько оплатил, когда урок, кому напомнить.
Что я делал
Проект на Yii2 начали до меня. С сентября 2018 по декабрь 2021 я принял его в наследство и вёл основную разработку; весной 2020 часть работы делали коллеги.
- Оплата часами. Калькулятор и тарифы по языку и типу учителя, пробный урок, скидки и промокоды. Оплата через Робокассу с проверкой подписи и через PayPal. Для учеников не из России — цены в юанях, подсказки по оплате через WeChat и Alipay и ручное проведение платежа. Журнал оплат с поиском и выгрузкой.
- Расписание и уроки. Календарь в админке и в кабинете ученика: перенос, отмена, отметка посещения, домашние задания, вход на урок. После занятия час списывался сам, а если оплаченных часов не оставалось, кнопка входа на урок становилась неактивной.
- Письма без участия людей. Напоминания о пробном уроке за 8 часов и за час, о неявке, о незаполненной анкете и о том, что осталось 2, 1 или 0 часов. Одно и то же письмо не приходило дважды, а ученик мог отключить рассылку.
- Четыре роли. Ученик, учитель, методист и администратор видели каждый своё; права проверялись на сервере.
- Зарплата и оценки. Расчёт зарплаты учителя за месяц без пробных уроков и оценка занятий учениками.
- Сайт школы. Главная, цены, заявки, правила и энциклопедия со статьями. Вместо JivoSite подключил чат AmoCRM, добавил Яндекс Метрику и пиксель VK.
Что это дало
Заявки, оплата, расписание и напоминания работали в одной системе, без отдельных таблиц. Методист видел, кто оплатил и сколько часов осталось, и подключался, когда часы заканчивались. Учитель и администратор сходились в цифрах зарплаты и не пересчитывали месяц вручную.