Understanding StudentsAchieve through Code
I’ve been hearing about the StudentsAchieve system used by Prince Edward Island schools since I first started working with the PEI Home and School Federation. In elementary grades StudentsAchieve is only used for tracking attendance, and there’s no provision for parent access to the system, so although I’ve been actively engaged in advocating for improved access to and use of StudentsAchieve it wasn’t until today that I actually got to use it myself.
Oliver’s in intermediate school now, and starting at grade 7 the system is used to record marks and share information about homework in additional to tracking attendance, and there’s provision for online access by parents through a web system. We got our username and password for Birchwood’s StudentAchieve system this afternoon, and so, at long last, I got to take it out for a ride.
The system was first implemented on PEI in 2006, and its design and usability make it clear that it has its roots in an era in web history not particularly concerned with the niceties of either. It works, yes, but its ugly and confusing and makes me feel sad.
Fortunately all is not lost: the web is open, and web systems, by their very nature, are open to reinterpretation through code. The data, in other words, is there: if I want it to be beautiful, I can do so myself.
By way of starting this process, I’ve started to code a PHP class for automated interaction with StudentsAchieve. All this code does is to mimic the same actions that a parent takes using a web browser – logging in, clicking on things, etc. – it just does it all automatically and takes the information it finds and makes it available in “machine readable” form that can then be reimagined.
The code is primitive right now: all it does is “login” to StudentsAchieve using your parent username and password and retrieve a list of classes, teachers and email addresses (and even then it only works, as far as I know, for households with a single student).
But the heavy lifting of getting a script to login to StudentsAchieve is done, and as a sort of “proof of concept” I used the code to create a PHP script to create a vCard file of all of Oliver’s teachers. Using the script I can do this:
php get-teacher-vcard.php username password
(substituting my actual parent username and password) and then this happens:
Logging in to StudentsAchieve... Making a vCard file... Saved a vCard file called 'BirchwoodIntermediateSchool.vcf'. Load this into your address book.
And, sure enough, when I open that BirchwoodIntermediateSchool.vcf file in the Contacts app on my Mac and then search for “Teacher”, I see all of Oliver’s teachers:
Given the hullabaloo last year about unauthorized student access to StudentsAchieve it’s important to note that this code doesn’t take advantage of any capability of StudentsAchieve not exposed to the web: you still have to be an authorized parent with a username and password to use it, and you only have access to the same information about your child that you have in an interactive web browser.