← ПОРТФОЛИО/НА ЗАКАЗ

Школа без Excel

Языковая онлайн-школа GLASHA вела всё в одном Excel-файле: уроки, оплаты, выплаты учителям, бонусы, лиды. Я разобрал файл до последней формулы и построил личный кабинет, где с данными работают все сразу — и ни одна минута не теряется.

Веб-кабинетDjangoPostgreSQL6 ролейна заказ
lk.glasha.com
Рабочий стол кабинета GLASHA
0минут расхождения с файлом по всем балансам после переноса
5недель от разбора файла до рабочего кабинета
6ролей: от директора до ученика
235автотестов на правила денег и уроков
⇄обмен с Excel в обе стороны, пока школа переходит
01 / ЗАДАЧА

Учётная система, которая жила в одном файле

Было: Excel-файл

  • Файл пересылают по почте — версии расходятся, «последняя» определяется по дате письма
  • Флаги «списать» и «оплатить» оператор ставит руками, правило поздней отмены — только в голове
  • Нет истории: кто и когда поменял статус урока или сумму оплаты, не узнать
  • Раз в год история срезается, чтобы файл не тормозил
  • Часовые пояса учеников по всему миру — свободным текстом

Стало: личный кабинет

  • Одна база, все работают одновременно — каждый в своей роли
  • Статус урока сам ставит списание и оплату по правилам директора, исключения — одной галочкой
  • Аудит каждого действия и откат ошибки в один клик
  • Вся история навсегда, отчёты за любой период
  • Время урока видно и по Москве, и по поясу ученика и учителя — с учётом перехода на зимнее время
02 / ПОПРОБУЙТЕ

Валюта школы — минуты

Оплата превращается в минуты, каждый урок их списывает. А что делать с отменой за два часа? С неявкой? С отменой по вине учителя? Кабинет знает правила — нажмите и посмотрите, как меняется семейный бюджет.

БЮДЖЕТ СЕМЬИ · 2 УЧЕНИКАучителю к оплате: 0 мин
90мин
Ниже 90 минут — жёлтым, ниже 30 — красным: пора напомнить об оплате
  • Остатокстартовый баланс
    +90
03 / ВОЗМОЖНОСТИ

Всё, что делала школа — и больше

🗓️

Журнал и расписание

  • Шаблон недели сам заполняет журнал без дублей
  • Статус урока в один клик прямо в таблице
  • Окно-напоминание со звуком, если урок закончился, а итога нет
💰

Деньги

  • Оплаты в долларах, евро и рублях, курсы ЦБ на дату
  • Семейные бюджеты, перевод минут между ними
  • Выплаты учителям и школам-партнёрам, инвойсы в PDF
📊

Показатели

  • Доход по месяцам, продано и проведено минут
  • Отток: кто молчит три недели и больше
  • Воронка лидов и бонусы менеджеров
🎥

Видеозвонки и чаты

  • Урок по видео прямо в кабинете, без Zoom
  • Чаты учитель — ученик — директор
  • «Позвонить директору» одной кнопкой
🤖

Telegram и календарь

  • Бот напоминает ученикам и учителям об уроках
  • Утренняя сводка: какие уроки вчера остались без итога
  • Подписка на расписание в календаре телефона
🛡️

Контроль

  • Журнал изменений с откатом
  • Заявки учеников на перенос урока
  • Сверка и обмен с Excel-файлом в обе стороны
04 / РОЛИ

Каждый видит своё

👑
ДиректорВсё, включая финансы, ставки и аудит.
🧑‍💻
ОператорЖурнал, статусы, расписание, ученики и оплаты.
📈
МенеджерЛиды, свои ученики и свои бонусы.
🧾
ФинансистВыплаты учителям и школам, инвойсы, отчёты.
👩‍🏫
УчительСвоё расписание в своём часовом поясе, итоги уроков, окна, инвойсы.
🎒
УченикСвои уроки, баланс, заявка на перенос, видеоурок.
05 / ЭКРАНЫ

Настоящий интерфейс

Снято на демо-базе: имена и суммы вымышленные, данные школы не показываются.

журнал
Журнал уроков
Журнал дня: время по Москве и у ученика, баланс, статус и флаги в одной строке
показатели
Показатели школы
Показатели директора: доход, минуты, отток, воронка лидов
ученик
Карточка ученика
Карточка ученика: бюджет семьи, шаблон недели, уроки и оплаты
рабочий стол
Рабочий стол
Рабочий стол: уроки сегодня, незакрытые уроки, кому пора напомнить об оплате
06 / ПОД КАПОТОМ

Как это сделано

🔬

Сначала — разбор файла

Прочитал все формулы и макросы, описал модель «минут», нашёл несостыковки в данных и собрал вопросы директору. Кабинет повторяет логику файла один в один.

📒

Леджер вместо формул

Каждое движение минут — запись в журнале операций. Баланс считается из истории, правила списания — в коде с тестами. После импорта балансы совпали с файлом до минуты.

⇄

Мягкий переход

Школа может работать по-старому: кабинет читает файл, переносит изменения и пишет свои обратно в xlsm. Никакого «дня Х».

🎥

Свои видеозвонки

WebRTC между браузерами, знакомство через WebSocket на Django Channels, свой TURN-сервер с одноразовыми паролями — если прямой путь не пробивается.

🌍

Часовые пояса

Ученики и учителя в разных странах. Пояс угадывается даже из записей вроде «7ч разница с Москвой», окна учителей пересчитываются по неделям с учётом перевода часов.

🚀

Продакшен

PostgreSQL, nginx, systemd, coturn, ежедневная загрузка курсов ЦБ и рассылки по cron, выкладка одной командой.

PythonDjango 5PostgreSQLHTMXDjango ChannelsWebSocketWebRTCcoturnopenpyxlPDFTelegram Bot APIiCalendarЦБ РФ APInginx
ВАШ БИЗНЕС ТОЖЕ ЖИВЁТ В EXCEL?

Переведу его в личный кабинет

Разберу ваш файл, сохраню всю логику, которая уже работает, и построю кабинет, в котором команда работает одновременно — без потерь и без «дня Х».