MongoDB爱好者
垂直技术交流平台

使用 MongoDB 构建教育平台:Coursedog

Nicholas Diao 和 Justin Wenig 最近参加了哥伦比亚大学的本科课程,他们都对第一节计算机科学课翘首以待。报名之后,他们欣喜地得知被该课程录取了。但他们走进教室上第一堂课时,迎接他们的却是一个令人沮丧的消息:这节课被重复预订了。他们很快发现,这种情况并不少见。很多大学,包括他们自己所在的大学在内,都缺少用于管理课程安排以降低复杂性的软件。他们决定一起解决这个问题。

 

最初只是为了解决本校问题而成立的本科项目,最终“华丽转身”成为了 Coursedog,一个由 Y Combinator 支持的高等教育课程成功平台。Coursedog 与 70 多所大学合作,致力于以现代化的方式为学生建议、安排和发布课程。

 

Coursedog 已筹集了 420 多万美元的资金,并从第一天开始就与 MongoDB 合作。两位创始人最近都入选了《福布斯》30 位 30 岁以下精英榜。

 

在本期 #BuiltWithMongoDB 中,我们与 Nicholas 谈到了学生创始人的身份,如何建立原型寻找适合市场的产品,并和 MongoDB 平台一起成长

Siya Raj Purohit:你在上大学期间创立了 Coursedog。你是如何遇到平台要解决的问题的,能跟我们谈一谈吗?

 

Nicholas Diao:我的联合创始人 Justin 和我都想上计算机科学课。第一天上课,我们带着课本、咖啡和零食往教室走,到了之后才发现教授并不在教室里。后来才知道,那位教授的课被重复预订了。

 

我们都是满怀抱负的计算机科学专业学生,都忍不住在心里想,“已经 21 世纪了,竟然还会出现这种问题?”

我们认为应该有一种自动化系统,可以顺利安排好大学课程。但我们想象中的自动化系统,到头来只不过是几位忙得团团转的管理员,在一间黑屋子里用 Microsoft Excel表制定计划。而且这个过程还很容易出错,也没有合理利用好大学管理员的时间。

为了更好地了解安排流程,Justin 和我前后大约找了四五百位大学管理员谈过这方面的问题,才发现它远比表面看上去要复杂,还会对学生以及他们学习和毕业所需课程的能力有着巨大的影响。我们也发现这是一个几乎被人遗忘的问题。

哥伦比亚大学法学院以设计合作伙伴的身份加入到我们这个项目中,随后我们开始构建一个简单的原型来解决这个问题,让系统更好地服务于所有大学。

 

SRP:你们最初的原型是什么样的?

 

ND:我们使用了简单的 HTML、CSS、JavaScript 和 Node.JS 服务器以及 MongoDB 数据库。我们之所以选择 MongoDB,有一部分原因就在于它非常灵活,因为我们每天都在不停学习和迭代。几个月后,在哥伦比亚大学法学院的力荐下,我们与杨百翰大学签订了一份正式的学校合同。

 

2019 年,我们进入了 Y Combinator。从 YC 毕业之后,我们在 A 轮融资中筹集了 400 万美元,现在我们与 70 多家机构合作,并发布了另外三款侧重于课程管理、活动管理和目录管理的产品。我们组建了一个 40 多名成员的团队,他们分布在三个国家/地区。

 

SRP:你们的技术堆栈中都有什么?

 

ND:它是 MEVN 堆栈,其中有 MongoDB、Express.js、Vue.js 和 Node.js。我们将 AWS 用于架构。

 

SRP:你在设计 Coursedog 时还是一名计算机科学专业的学生。你当时是如何决定要选择 MongoDB 的?

 

ND:我们选择与 MongoDB 合作的原因有很多。一开始,我们希望快速构建客户可以立即提供反馈的演示。

 

我们知道,自己正在攻克一个复杂的难题。但我们不知道的是,自己的终极数据结构会是什么样子,因此我们需要一个尽可能灵活且可以反复迭代的数据库,我们最终确定它应该是一个云托管的 NoSQL 数据库。MongoDB 在这方面遥遥领先。

 

事实证明这个决定非常明智,因为我们对数据模型做了很多修改,MongoDB 既能管理好解决方案的复杂性,又比其他数据库更易用。而 MongoDB 为我们提供的强大功能,更是令我们的团队为之折服。不同数据对象之间的关系错综复杂(以经济学课程为例,要管理好需要知道的所有组件:教室大小、班级大小、科系等等)。我们能够在 SQL 数据库和复杂的过滤器中进行非常强大的联结。我们能够以迭代的方式构建我们所需的一切,并且 MongoDB 功能全面,随着时间的推移,还能为我们构建更复杂的功能。

 

我们也曾经与一位 MongoDB 技术顾问交谈过:聚合管道对我们来说是全新的事物,双方的交谈为我们开始使用 MongoDB 打下了良好的基础。从那时起,我们就准备了足够详细的 MongoDB 文档,帮助我们应对扩展挑战。

 

SRP:如今,已有 70 多所大学使用你们的产品。你在使用 MongoDB 进行纵向扩展时的体验如何?

 

ND:我们发现,得益于产品的灵活及无缝扩展的特性,扩展确实非常容易。我们对正在使用的数据量和性能指标有清晰的认识,并且会及时收到通知。

 

如果达到特定指标的 80%,MongoDB 就会发送通知,我们非常喜欢这项功能。它给我们的 DevOps 和负责监控的基础架构人员帮了大忙。事实上我们已经从中得到了一些启示:如果教室座位的预定量达到了 80%,我们就会向用户发送一则通知

 

我们的规模越来越大,处理的数据量也越来越多(每个学校通常有 150 至 200 种数据类型),但 MongoDB 的灵活性和定制能力完全可以满足我们的需求。

 

有时我们会把它跟架构工具 AWS 进行对比。用 AWS 来处理这些事情则要困难得多。举例来说,要更改通知(甚至是设置通知),你必须阅读 AWS 晦涩难懂的在线文档,然后要在网站上近 30 个不同的地方去做这种更改。相比之下,MongoDB 可以轻松管理后端,所以我们能够集中全力经营业务。

 

SRP:你对那些立志创办自己公司的大学生以及进入公司担任 CTO 职务的大学生们有哪些建议?

 

ND:我认为大学里最应该锻炼的技能非协作莫属。学校对学生的评估完全侧重于内容(考试、论文、习题集),但在职业生涯中真正有用的是你与其他人的协作能力。

 

如果 Justin 和我没有建立起牢固的关系,不能与那些聪明又勤奋的同事精诚协作,一起打造 Coursedog,我可能会一事无成。我想对大学生们说的是,从长远来看,你的习题集分数多少,实验室的得分高低都不重要,重要的是你能否跟周围的人融洽共事。

 

我的第二个建议,在创建解决方案时,要从小着手,立足本地,从尝试为你身边的人解决问题开始。Coursedog 就是这样诞生的。最优秀的公司都是从解决个人问题着手,然后一步步发展壮大。

 

想做一些很酷的事情?即刻加入MongoDB for Startups计划

链接:https://www.mongodb.com/startups

7月3日来杭州参加MongoDB中文社区2021年杭州大会,诸多MongoDB技术分享和一手实践干货在现场等你来!

点击了解活动详情!

~完~

添加小芒果微信(ID:mongingcom)进入中文用户组技术交流群。

MongoDB-全球领先的现代通用数据库

点击访问MongoDB官网www.mongodb.com/zh

Tapdata DaaS – 一站式实时数据融合平台 (tapdata.net)

免费使用 Tapdata Cloud – 在线异构数据库实时同步工具(cloud.tapdata.net)

 

 

 

 

 

Mongoing中文社区

MongoDB中文社区微信公众号

扫描关注,获取更多精彩内容

社区网站www.mongoing.com

长按二维码关注我们

赞(28)
未经允许不得转载:MongoDB中文社区 » 使用 MongoDB 构建教育平台:Coursedog

评论 抢沙发

评论前必须登录!