With people being stuck home for so long during the pandemic, many are looking to use their time to learn new skills, or maybe even share some of what they know. However most learning platforms require qualifications and a background to teach skills, and cost money for users to subscribe to.

This is where OpenBook comes in. With OpenBook, anyone can subscribe for free to courses that cover a wide variety of topics, which can be taught by anyone. And anyone can share a skill that they know by creating a course.

What it does

A course consists of lessons, which can incorporate either text or video submissions. Users must create an account and login to access most of the applications features, such creating or subscribing to a course.

How we built it

We organized our team into subteams of 2 people each, 1 subteam for the frontend and 1 subteam for the backend.

React, Javascript and Bootstrap were used for creating the frontend.

The backend server was written using RESTful design principles, and was built in C# and ASP.NET. The application was deployed to Azure App Services, with a database also in Azure.

Challenges we ran into

  • Getting Authorization to work on the backend. We used Auth0 but had trouble setting up the .NET middleware to work with it correctly.
  • Deploying the application to Azure was also quite challenging, but we successfully deployed it.

Accomplishments that we are proud of

Micah went from zero knowledge of C#, ASP.NET, and Azure to making a RESTful server run using all 3. In a few days I learned both a new programming language, a new framework, and used a cloud service that I had never interacted with before.

Evie Being able to create and design and then develop it to look just like it. Evie started with a simple mock up in Adobe XD that she shared with the team and was able to replicate the browse page and the create page. Evie is most proud of the CourseCards component as she really learned a lot about react when making it.

Keith had no experience working with C#, ASP.NET, or Azure services before working on this project. Within the limited time frame, I was able to build out a RESTful API for CRUD operations of Courses, and the Many to Many relationship between Users and Courses. I was also able to create a RESTful API for CRUD operations of files utilizing Azure BLOB storage.

What we learned

Micah: C#, ASP.NET, Azure, deploying applications Evie: React

What's next for OpenBook

  • Getting authentication to work correctly
  • Adding better routes for uploading BLOB objects to storage
Share this project: