Our team believes high-quality education should be accessible to anybody in the world. No person should forgo their right to learn based on where in the world they live, what gender they are, or what communities they are a part of. As access to the internet increases for people around the world we see the Internet as the great equalizer. We wanted to develop a Web application that could help students learn for free.
What it does
What it does: Teachers around the world adapted to online learning by creating online material. Now they can continue to put their work to great use on our open-source education platform. Open School is a web app with multiple educational courses (algebra, biology, and physics) and each course has a framework of units, much like a lesson plan. Within each unit, any user can add their educational videos or problems. This material gets uploaded to a database so it can continue to be used on our website for any student to access.
How we built it
This system is built with nextjs and MongoDB. Nextjs was great because it enabled us to create both the backend and frontend in one project, which was important given our time constraints. Every page for the units of the course is statically generated based on information stored in MongoDB. This increases the performance of the site, and also makes adding units as simple as hitting a button when signed in as admin. For user uploaded problems, we use markdown so that storing the problems is simple, and the problems are also easy to create. The markdown renderer includes a LaTeX math plugin so that users can create easy to read questions alongside the already available embedded images.
Challenges we ran into
During this project time constraints proved a significant challenge to the creation of Open School. While designing the app we constantly felt the urge to make quality-of-life improvements that didn’t necessarily add functionality. We had to waive these aside to stay on track and complete them on time. Additionally, the data management side of Open School tested our ability to learn on the fly. We had to initially invest a large portion of time in learning this as we knew it would be instrumental in the completion of our project.
Accomplishments that we're proud of
We created an entire user system with a database that we have never used before (mongoDB). We also feel accomplished with our “final” product, as it has the functionality to help students learn for free.
What we learned
This was our first hackathon so it came with many first-time learning experiences. We learned the creation process and mindset of developing an entire application in 24 hours. We learned how to classify the tasks and problems we needed to solve. We learned more intricacies with TypeScript and web app development.
What's next for Open School
We hope to add more courses, improve the upload process, and better the student experience. We can host it on a server and with some publicity people will start to add material and students will use it as a resource to learn.