Inspiration

Office hours are one of the most valuable academic resources, yet they are not often utilized by students. Many students hesitate to attend because they feel intimidated by the instructors, or offices are too small to host everyone, or because of weather-related issues. Virtual office hours are a great and innovative approach, yet professors lack a comprehensive platform to manage the meetings. We want to change that, and that was how Office Hours OS was born.

What it does

Office Hours OS is a smart engagement, fun-to-interact platform that transforms the traditional office hours into an interactive one. It allows: + Professors to create upcoming office hour events. + Professors to " go live" with a topic and meeting link (Google Meet/Zoom/etc). + Students can follow professors or tags (math, cs, exam_prep, 2nd_year,...). + Students can receive notifications only from what they follow, optimize their needs, and support. + Thread discussion is organized and structured for both ends (professors and students). + Utilize Gemini API to summarize the meeting's discussion and produce an exportable .txt file.

How we built it

Frontend: We are using Next.js for a graphical and interactive UI and real-time status check. Backend: We are using Auth0 for authentication and verification, Supabase + Prisma for our database to store all the data (user, login information, events, threads,...). Database: our database is built around a clear relationship of how two primary roles can interact with each other (users can set their roles (student, professor) and have different permissions to interact. For example, students can't create a meeting. Export system: Gemini will read through the discussion threads and produce a .txt summary.

Challenges we ran into

One of our biggest challenges was trying to design the database before we implemented the frontend. It was extremely difficult, and we spent nearly 7 hours trying to wire the database with our UI. Figuring out the authorization problem was also cumbersome, but thanks to the great help of the coach, we were able to build a robust system using Auth0.

What we learned

We learned how to use Auth0, which is a flexible, cloud-based-identity-as-a-Service (IDaaS) that can quickly take care of all the authentication and UI in a very efficient way, causing way fewer troubles and bugs compared to our initial attempt using Supabase alone.

Built With

  • auth0
  • gemini
  • next.js
  • prisma
  • supabase
  • typscript
Share this project:

Updates