Our inspiration is to better the lives of fellow College students. Everyone gets stressed with school work, and we want to alleviate that stress from students to help them be able to focus on classes more and learn the material properly. Connecting Google Home to Canvas will allow students to be able to plan their day to day activity to avoid last minute stress to complete homework the night it's due.
What it does
Canvas Assistant will be voice activated like the Google Home with the simple phrase of "Okay Google... connect to my Canvas Assistant" then following with commands such as "What is my grade in Macroeconomics?". Google Home will be able to read out grades for classes, grades for recent assignments, the ever important To-Do list, and recent announcements made in the past day.
How we built it
First, we drafted our idea and possible features using use-case and UML diagrams. Then, we spent several hours researching authorization methods as well as the Dialogflow layout and the Canvas API. The API provided by Canvas set some limits on what we were able to do, so we drafted intents based on what was available. From there, we created the fulfillment for each intent, mainly comprising of a GET request from the Canvas server, and translating the return values into user friendly text that would be delivered to them using text-to-speech. The next step was the authorization using OAuth for students to connect to Canvas through the Google Home. After struggling with OAuth for the better part of a day, we found an alternate route that, while not advisable for wide-scale deployment, is fine for testing. Finally, we touched up the utterances and responses to make the app easy to use.
Challenges we ran into
We ran into problems with Canvas' API as Google applications require special authorizations to work with non-Google APIs. This was remedied with using hard-coded tokens for testing. Oauth2 will be implemented later. Secondly we ran into a problem of getting the authorization access for Canvas through Google Home. It requires a login through the Google Home app that will direct you to the appropriate log in for the University desired and will save the token so that one does not have to resubmit the information each time. Thirdly, none of us have worked with APIs or Google Home applications prior to this event, so that was fun.
Accomplishments that we're proud of
We are proud of making this function for Google Home, a staple in many students dorm rooms, to make their daily activities easier and more efficient. During this extensive event we researched and gained new knowledge of API's (Google and Canvas) for this project, from how they interact to how to utilize their positives to the best of their abilities. We accomplished breaking down the authorization of Canvas by circumventing the normal need to use Oauth. We deciphered the overly complex JSON objects returned from the Canvas API and acquired the data we needed.
What we learned
We learned the extensive use of APIs and the hardships that occur when trying to connect APIs that Google does not comply with. The interaction between Google voice activated devices and the back end using Dialogflow. We learned about the processes and training protocols for the machine learning algorithms in Dialogflow. We learned authorization protocols and how to implement then in a secure manor that keeps the students information safe (and ways to access the data without proper authentication).
What's next for Canvas Assistant
-Next for Canvas Assistant we would want to be able for students to ask Google Home to read out any comments/feedback made on their graded assignment or test. -We would like to have Google Home be able to read all new emails from professors and classmates within the Canvas message system as well as send emails to classmates and professors. -Have students be able to create a schedule within the Canvas calendar, and when they say "Good Morning Google" the Google Home will read out what they have for the day in the calendar. If prompted to it can read out their week. -We would like for students to ask Google Home for when assignments are due. This will give students more flexibility with their schedule and be able to plan out when they will work on homework/study. -Implementing proper Oauth2 authorization will be a top priority to ensure student information security.