The Overview page of the dashboard, where the user can see a quick summary of their classes.
The Assignments page, where the user can search for and view assignments.
The individual assignment page, where the user can view statistics about a specific assignment and see a list of student submissions.
We're all high school students growing up in the Bay Area. So the desire to teach students our age to code is somewhat natural. We were excited to hear that the local NPO, Code Nation, wanted to leverage our skills because we wanted to make positive social change.
What it does
Prior to hackathon, a lot of the grading process was manual and tedious. This presented a lot of inconveniences for the graders since they had several students and several assignments too grade. Our app automatically uses Google Classroom API to extract student grade data, send it to our database, Salesforce, and then processes to draw analytical conclusions and find trends. Altogether this allows our NPO to not have to worry about manually entering grades into a database, and in effect it streamlines the process with code!
How we built it
We used the Google Classroom API to authenticate users with Google Classroom's servers and performed various queries to retrieve students, assignments, grades, and due dates from the courses. We then ran an analytics script on the data to extract trends and other information of use to teachers. Finally, we updated the salesforce database with students's names and associated grades along with the updated dashboard that displays all of the information.
Challenges we ran into
The Google API documentation was rather inconvenient and we faced trouble because our code didn't work in python but needed to be adapted in JAVA to work. Additionally scraping the right data from the messy json text wasn't very fun. Finally implementing this and connecting it to Salesforce proved to be a real hassle from the start, as there is very very little documentation for it.
Accomplishments that we're proud of
We are proud that we were finally able to leverage the Classroom API. It was very challenging, and we spent a few hours on it but in the end we succeeded. Additionally, we are proud of our nice UI and overall product.
We learnt some important skills when it came to working with Google APIs, specifically Google Classroom API, and dealing with authentication through Classroom, querying for students and other information, and constructing analytics from that data.
What's next for CodeNation Admin
In the future we hope to flesh out our analytics that are calculated from Google Classroom such as class ranks and student of the week. We also hope to embed this process into a Google Slides API such that the dashboard can be more easily viewed and accessed.