Telegram Mini App · продукт

Один трекер для любого числа школ, и ни одна не видит чужого

Три трекера для разных курсов выросли в продукт: школа получает своего бота, свою программу и своё оформление за вечер, а не за неделю разработки.

Экраны проекта: Платформа трекеров для онлайн-школ
1движок на любое число школ
1 школа = 1 базаданные школ физически разделены
3готовых оформления, плюс свои цвета и шрифт
24автотеста, в том числе на изоляцию школ

Задача

Трекер потока, который я сделала для одной школы, понадобился второй, а потом третьей. Каждый раз это была копия кода: исправить ошибку — значит исправить её трижды, добавить функцию — трижды её перенести.

Нужен был один продукт для всех школ, где новая школа подключается настройкой, а не разработкой. И главное условие: данные одной школы никогда не должны попасть к другой — даже по ошибке в коде.

Что внутри

  • Отдельная база на каждую школу. Не одна общая таблица с пометкой «чья запись», а отдельный файл. Чужие данные нельзя достать даже забытым условием в запросе.
  • Свой бот у каждой школы. Участницы пишут боту своей школы, токены ботов хранятся зашифрованными.
  • Вход только через Telegram. Без email и паролей: приложение проверяет подпись Telegram, подменить участницу нельзя.
  • Программа — это данные, а не код. Владелица сама добавляет модули и уроки, выбирает, когда урок откроется: сразу, через N дней или в дату.
  • Панель владелицы в телефоне. Сводка потока, где участницы останавливаются, отклики, доступы, тексты бота и оформление. Куратор видит всё, но ничего не меняет.
Сводка для владелицы: сколько участниц, кто заходил, на каком уроке останавливаются
Участницы: прогресс каждой и доступ, который открывается и закрывается одной кнопкой
Та же программа глазами участницы, в другом оформлении: школа выбирает его сама

Как сделано

Я начала с того, что сломать нельзя, — с изоляции школ. Её охраняют автотесты: они нарочно пытаются прочитать данные соседней школы и падают, если это удалось. Таких проверок в проекте 24, все проходят.

Резервные копии делаются по каждой школе отдельно и проверяются восстановлением. Старые трекеры можно перенести в платформу импортом, не теряя прогресса участниц. Сейчас продукт готов к первой школе; на скриншотах — демо-школа «Тихая практика» с выдуманными участницами.

Нужен такой же проект?

Обсудить в Telegram @valter_valter · отвечаю лично