Schooliee
一款跨 Web 应用、移动应用和桌面消息工具端到端运营学校(学生、员工、费用和家长沟通)的多租户 SaaS。
Next.js 16
React 19
TypeScript
Convex
Prisma + MongoDB
Material UI
Expo
Electron

概览
Schooliee 是一款专为巴基斯坦市场构建的云端学校管理系统。它是一个完整的多租户平台,单一的部署即可服务于平台管理员、运营一个或多个校园的学校所有者以及学生的家长。该产品跨越共享同一个后端的三个客户端:一个 Next.js Web 应用、一个白标 Expo 移动应用和一个用于批量发送 WhatsApp 消息的 Electron 桌面工具,涵盖了从学生记录和员工管理到费用收取和日常家长沟通的方方面面。这是一个仍在积极开发中的大型长期产品。
问题
运营一所学校会产生源源不断的行政工作:登记和跟踪学生、管理具有不同权限的员工、开具和追缴费用,以及多数系统处理得很糟糕的部分——真正触达家长。特别是在巴基斯坦,家长使用 WhatsApp 和手机的频率远高于电子邮件,并且他们通过 CNIC(国民身份证)进行身份识别,而不是通过他们可能记住创建的帐户。一个平台还必须同时服务多个层级:运营它的公司、为此付费的学校所有者以及使用它的家庭。在一个连贯的系统中同时为多所学校完成所有这些工作,正是 Schooliee 着手解决的问题。
我的角色与方法
这是一个由多名开发人员组成的团队经过长时间构建的大型产品,而我是其核心贡献者之一,也是这段时间内代码库中最活跃的人之一。我的工作跨越了基于角色的 Web 门户以及不同受众所依赖的共享前端基础。指导架构是按受众分离:每种类型的用户都有自己的门户和权限范围,呈分层结构,因此平台管理员位于学校所有者之上,而学校所有者又位于其校园和家长之上。所有这些都运行在一个混合了用于实时功能的实时引擎和用于核心记录的结构化数据库的后端上。
技术栈
主要功能
图集


挑战与解决方案
决定性的挑战在于,Schooliee 实际上是同时包含多个产品的集合体:三个客户端应用和几个不同的受众群体共享同一个系统。Web 应用通过面向特定受众的门户和角色层次结构来处理这个问题,因此平台管理员、学校所有者和家长每个人都看到了同一平台连贯的一部分,而不是千篇一律的仪表板。
数据层反映了深思熟虑的划分。聊天、公告、通知和推送等实时协作功能运行在专为实时构建的 Convex 上,而结构化的学校记录则位于基于 MongoDB 的 Prisma 中。在每个工具最擅长的地方使用它们,既保持了实时功能的响应速度,又保持了核心数据的良好建模。最困难的现实问题,即触达家长,归结为去他们所在的地方。该平台不是依靠电子邮件,而是通过 Web 和移动通知以及专门构建的 WhatsApp 桌面发送工具进行推送,并且它通过 CNIC 识别家长,因此没有帐户障碍。
成果
Schooliee 是一个仍在日常发布的生产平台:一个真正的大型多租户系统,跨越 Web、移动端和桌面端为巴基斯坦的学校提供服务。它在一次性服务多家机构的情况下,将一所学校从招生、收费到持续的家长沟通都囊括在一个平衡实时互动与结构化记录保存的后端上。对我来说,它代表了在复杂产品的整个长生命周期中持续的高级别贡献,而不是一个短期的开发项目。