Trying to create a student understanding tracking system using Google Forms and Sites #gafe

I used (and sorely miss) Geddit. It was very useful in gauging student understanding during a lesson and was a low-cost, high-gain tracking tool that I could refer to after lessons, before end of topic tests and during parents evenings (if needed).

I decided to try and create something along a similar vein, but using Google Forms and Sites. The advantage of this is that I can restrict access to those within the school, automatically use GAFE login details, and – in the future – customise it with more complex Google Apps Scripts so that students can be emailed and Google Charts automatically generated into a dashboard (I’m thinking by student or class at the moment).

My late-night sketch was simple enough – the teacher could choose a class and enter a question into a teacher-only Google Form. This would then be parsed by a Google Script to somehow display the most recently entered class and question in or above the student Google Form. When I’m generating reports into the dashboard I can use the timestamps from each Google Form response spreadsheet to correlate which question the student response relates to.

Anyway this was easy enough to prototype:

Teacher question control form
Screen Shot 2016-01-04 at 01.48.33

Student response form
Screen Shot 2016-01-04 at 01.49.05

The problem however was getting the most recent teacher question to appear in the Google Form. I decided to create a new Google Site and see if I could publish a range of the teacher Google Sheet as a webpage. I thought that this would be the easiest way to display the current question.

First I used a Google Sheet query in a new tab (called Question Feed) to reverse the order of the Google Form submissions:

=query('Form responses 1'!A1:Z, "select * order by A desc", 1)

I then created another Google Sheet tab (called Web Page) to create the view to be embedded in the Google Site:

Screen Shot 2016-01-04 at 01.56.53

I managed to publish this tab as a web page and then went about embedding it into my Google Site. All worked great! However Google Sheets only seem to refresh every 5 minutes so I investigated a way of doing something similar using a Google Script.

Using code similar to the following I was able to change the page title of the Google Site’s current (only) page to the most recent question submitted:

function displayQuestion() {
var ss = SpreadsheetApp.openById("put your Google Sheet ID here");
var sheet = ss.getSheetByName('Web Page'); // or whatever is the name of the sheet
var range = sheet.getRange(2,1); // Get the question
var question = range.getValue();
var range = sheet.getRange(1,1); // Get the class
var data = range.getValue() + ": " + question; // concatenate
var site = SitesApp.getSiteByUrl("put your Google Site URL here");
var page = site.getChildren()[0];
page.setTitle(data); // Puts current question from SS into page title section


I added the script to the Google Site and set a trigger to run the function every minute.

The student view of the system currently looks like this:

Screen Shot 2016-01-04 at 02.03.25

Yes there are UX issues – such as the page refresh to get a new question, or the need to click on “Submit another response” to change the teacher question or add another student response, however I think I’m happy with it as a starting point.

Please feel free to use the above code if it is useful to you. I’m going to try it out with a few classes in the next few weeks and see if I can use some real data to create reports from. Any comments on how I can improve the system would also be greatly appreciated.