Hi there! This gist is a bit outdated. The good news is that you can go here instead:
As of May 2021, it is actively supported.
This tool was created as a part of the Open Source suite of software offered by Classroom Tech Tools. Released with MIT license. This software is released as-is.
Access teacher's submitted term grades, and assessment task results, and other student informatoin, right from within a Google Sheet. Save your colleagues clicks, so they can teach. Have better discussions about students. Make your school more data-driven.
This document is intended for IT-savvy individuals who are familiar with how to provide access to ManageBac's data via its public API integrations.
Since you're using Google Sheets, there is a maximum number of cells that you can have at once. A large school who has been using ManageBac for some time might hit that ceiling. However, the code is very efficient about not using more cells than it really needs. :)
Depending on how much data there is to extract, a "timeout" can be hit. In this case, run the code with only one endpoint.
Consider contacting an IT professional with experience working with Google AppsScripts, JavaScript, and endpoint APIs.
This should give you a Google Sheet that contains ManageBac information within a few minutes. Limitations apply.
- Open this project and bring it within your domain by making a copy of it.
- In the Resources -> Advanced Services console, enable the Advanced Sheets Service "Sheets", and click on the console link.
- In the console, enable two APIs: Sheets and Apps Scripts
- Deploy as an API executable in Publish menu
- Open up the action.gs, this is where you edit and run
- On line 8 in action.gs enter the documentID of a pre-created Google sheet
- On line 11 enter the managebac API token which has classes and grades enabled (in ManageBac's integration settings)
- Inspect lines 38-45 and notice that you can gather submitted grades and/or assesssment tasks. You probably will have to run it more than once to get both by adding/removing comments.
- Run it by selecting the
actionEndpoint
function in the dropdown menu and clicking the play button. It'll ask for permissions, one of them "run while you are not present" is required because of concurrent processing (see tech details below) — the script as is does not run without you manually clicking buttons or doing further setup - The spreadsheet should be filled with tabs with the requested information
- Run it again, as needed
- Optionally, set up a time-driven, installable trigger to run daily
- Interactions with the API endpoints is concurrent, which means that the processing for each process occurs in child processes (thanks to Apps Scripts API)
- ManageBac does impose rate limits (standard practice), and these are encountered during execution with backing off code (also standard practice)
- The underlying code base is based on my modular libraries package, which allows for easy endpoint interactions between ManageBac and Sheets APIs.