SIGMOND KUKLA

Tech Tinkerer

Dashboard Actions Banner Art Image

Grades Dashboard Google Action

Important update:

Google announced on June 13, 2022 that Conversational Actions, the platform that Grades Dashboard is built upon, will be sunset and no longer available after June 12, 2023. In the meantime, Grades Dashboard will still function but, but my development is be halted due to removal of conversation-building tools. While this is unfortunate for Grades Dashboard, there are alternative paths that this may take in the future, as Google is transitioning this functionality to Android applications. However, as you will no longer be able to interact with Grades Dashboard through Google Home (the original intention of this project), it is likely that I will focus my efforts on other projects.
At this point, (unfortunately) the project is no longer available for public use. The source remains available on GitHub, but I have taken down the configuration web interface and the webhook endpoint as services from my server.
Thank you for checking out Grades Dashboard, and I hope you come back to see what I'm working on next!

This Action allows you to ask Google Assistant about your grades. It retrieves grade information from Powerschool SIS and displays it as part of a conversation with Google Assistant.

The Action's webhook endpoint is now hosted on my own server. A configuration webpage, (no longer) available at https://dashboard-api-web.sigmondkukla.tk/ makes POST requests to separate routes on my endpoint that control user data, such as creating, editing, and deleting user information.

Through building and deploying this, I learned:

  • Using Google Actions Console
  • More Python skills:
    • Creating a Flask application
    • Parsing JSON
    • Using Postman to test requests
    • Creating a SQLite database
    • Using a Gunicorn server
  • Server hosting:
    • Setting up a personal cloud server
    • Multipass containers & network bridging
    • Configuring Ubuntu Server
    • Using Cloudflare DNS
    • Reverse proxy based on hostname with nginx
    • Getting SSL certificates from Let's Encrypt
  • Web app creation:
    • Creating a persistant login system using Flask
    • Using Bootstrap for quickly designing multiple pages
    • Displaying flash messages as feedback for user's actions
    • Sharing database between web app and endpoint

Take a look at the code on GitHub: