Inspiration

Are you tired of clicking on every single class every day to check for all your homework on Google Classroom? We are too! SuperStream was born to solve this problem. As students, most of us use Google Classroom and we found that a comprehensive and unified stream of all the posts of the day would be extremely convenient. You could say that we literally decided to "Hack the (Google) Classroom." :)

The project name has two meanings: A Google Classroom stream (that's what each individual class's page is called) with superpowers, or the superset of all streams.

What it does

SuperStream accesses the Google Classroom API to receive all the data for each course, including any announcements, materials, or assignments you might have. We automatically list the courses you're enrolled in, let you filter the stream by class or post type, so you can immediately hone in on your assignments, or read up on your teacher's announcements and materials.

How we built it

Languages that we used: Javascript, Python (Quickstart)

Frontend Frameworks:

Backend Frameworks:

Technologies that we used: Nodemailer, Google Classroom API (via Google Cloud)

Challenges we ran into

We ran into a few issues with the Google Classroom API, which has a variety of differing interfaces that communicate similar data. Thus, we worked to abstract data for assignments, announcements, and materials into one common schema. It also has a complex model for authentication. We also struggled to connect the filtering state to our frontend-backend communication channel, as the logic got quite complex as we added more features. We then took a step back to lay out our program structure, and debug slight typing issues, enabling us to finally produce the results we wanted. Some of the team was completely new to using a React/MUI stack, but it was quick to pick up, leading to a fun experience for all, even as we worked through trickier functionality, like placing animations and aligning UI elements in our display.

Accomplishments that we're proud of

  • Adapting the Google Classroom API to have a more uniform schema
  • Implementing a dynamic post filtering system
  • Designing the Front-end using Material UI, as this was the first time for most of our team
  • Setting up NodeMailer and getting it to work.

What we learned

We learned how to think with different, more elaborate methods to design logic and program flow. It was great for the team to try new technologies for the first time, such as GitHub Codespaces, to facilitate work as a 4-person team in multiple time zones.

What's next for SuperStream

Making a Teacher view, where posts can be created and edited, would enable teachers to use the site in addition to students. As a wise person once put it, "software is never done," and we'd like to add new UI elements and features to produce and communicate more information in a concise form for users to easily read.

Built With

Share this project:

Updates