Architecting our Summit Learning integration
The Summit Learning Program kicked off in 2015 and only a 3 short years later supports over 380 schools and 72,000 students. Summit provides full curriculum for grades 4th through 12th and a pathway toward implementing personalized learning. Through 1:1 mentoring, projects, and goal setting Summit pushes students to own their own learning and to develop the skills they need to be self driven learners who can choose their own path in life.
The Summit Learning Program is still early days. While their platform houses the projects, resources, integrates NWEA MAP data, and tracks the students’ progress, they do not have an API or any automated data exports. This can make it difficult to bring Summit data into a reporting tool such as Google Data Studio.
When we look to bring student information system and edTech data into Google Data Studio, we look to all of the tools that Google Cloud has to offer and lean toward serverless environments where possible. To pull data from the Summit Learning Program, we had to utilize Puppeteer. Puppeteer, a Google project, is a Node library that can control headless-Chrome. Think of it like a virtual Chrome browser that you cannot see, but can control via code.
Our integration works as follows:
A Google Cloud Function is added to the school’s Google Cloud environment that holds the code for Puppeteer. The Cloud Function exposes a protected API endpoint that when hit, runs the code.
A Google Apps Script hits the API endpoint causing Puppeteer to launch a virtual Google Chrome session, log into the Summit Learning Program, and download the CSV exports. The CSV files are sent to Google Apps Script and passed on to Google Sheets
We schedule the Google Sheet to refresh on a schedule you define. Google Apps Script also adds a menu to the Google Sheet so you can refresh the data manually.