Schooliee
Мультитенантный SaaS, управляющий школами от и до (ученики, персонал, оплата и общение с родителями) через веб-приложение, мобильное приложение и десктопный инструмент для обмена сообщениями.
Next.js 16
React 19
TypeScript
Convex
Prisma + MongoDB
Material UI
Expo
Electron

Обзор
Schooliee — это облачная система управления школами, созданная для рынка Pakistan. Это полноценная мультитенантная платформа, где одно развертывание обслуживает администраторов платформы, владельцев школ, управляющих одним или несколькими кампусами, и родителей учеников. Продукт охватывает три клиента, использующих один бэкенд: веб-приложение Next.js, white-label мобильное приложение на Expo и десктопный инструмент Electron для массовых рассылок в WhatsApp. Платформа покрывает все — от записей учеников и управления персоналом до сбора оплаты и ежедневного общения с родителями. Это крупный долгосрочный продукт, который все еще находится в активной разработке.
Проблема
Управление школой порождает постоянный поток административной работы: зачисление и отслеживание учеников, управление персоналом с различными правами, выставление и сбор оплаты, и та часть, с которой большинство систем справляется плохо — реальный контакт с родителями. В Pakistan родители гораздо чаще пользуются WhatsApp и мобильными устройствами, чем электронной почтой, и они идентифицируются по CNIC (национальному удостоверению личности), а не по учетной записи, которую нужно было бы не забыть создать. Платформа также должна обслуживать несколько уровней одновременно: компанию-оператора, владельцев школ, которые за нее платят, и семьи, которые ее используют. Выполнение всего этого в одной согласованной системе для множества школ одновременно — вот проблема, которую должен был решить Schooliee.
Моя роль и подход
Это крупный продукт, созданный командой из нескольких разработчиков за длительный период, и я был одним из его основных контрибьюторов, одним из самых активных разработчиков кодовой базы за это время. Работа охватывает веб-порталы на основе ролей и общие основы фронтенда, от которых зависят различные аудитории. Руководящая архитектура — разделение по аудиториям: каждый тип пользователя получает свой собственный портал и область разрешений, многоуровнево организованные так, что администратор платформы находится над владельцами школ, которые, в свою очередь, находятся над своими кампусами и родителями. Все это работает на бэкенде, который объединяет движок реального времени для живых функций со структурированной базы данных для основных записей.
Стек технологий
Ключевые особенности
Галерея


Сложности и решения
Определяющая сложность заключается в том, что Schooliee — это на самом деле несколько продуктов одновременно: три клиентских приложения и несколько разных аудиторий, использующих одну систему. Веб-приложение справляется с этим с помощью порталов, ориентированных на аудиторию, и иерархии ролей, так что администратор платформы, владелец школы и родитель видят связную часть одной и той же платформы, а не универсальный дашборд для всех.
Уровень данных отражает осознанное разделение. Живые, совместные функции, такие как чат, объявления, уведомления и push, работают на Convex, который создан для реального времени, в то время как структурированные школьные записи находятся в Prisma поверх MongoDB. Использование каждого инструмента там, где он наиболее силен, сохраняет отзывчивость живых функций и хорошую модель основных данных. Самая сложная проблема в реальном мире, охват родителей, сводится к тому, чтобы идти туда, где они находятся. Вместо того, чтобы полагаться на электронную почту, платформа отправляет уведомления через веб и мобильные устройства, а также через специально созданный десктопный отправитель WhatsApp, и она идентифицирует родителей по CNIC, поэтому на пути нет барьера в виде учетной записи.
Результат
Schooliee — это продакшен-платформа, которая все еще обновляется ежедневно: по-настоящему крупная, мультитенантная система, обслуживающая школы в Pakistan через веб, мобильные устройства и десктоп. Она проводит школу от зачисления до сбора оплаты и постоянного общения с родителями, для многих учреждений одновременно, на бэкенде, который балансирует взаимодействие в реальном времени со структурированным ведением записей. Для меня это означает длительный, на уровне Senior вклад в сложный продукт на протяжении всего его жизненного цикла, а не краткосрочную разработку.
Столкнулись с похожей продуктовой задачей?
Расскажите о текущем состоянии продукта, необходимом результате и имеющихся ограничениях. На основе этого я сформулирую понятный первый этап.
Услуги разработки SaaS