8

使用 MongoDB 构建教育平台:Coursedog

 3 years ago
source link: https://mongoing.com/archives/79215
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
使用 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)进入中文用户组技术交流群。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK