This post was written for the talk “APIs and Beyond” at the Faria Education Technology Conference 2021.
APIs or Application Programming Interfaces are central to how the internet works. Every time we search, submit a form or enter student grades, we are using an API. It is a way for a user to send information to servers that then organize that information and give back a response.
ManageBac offers us a convenient API that can, with some creativity transform ManageBac from a powerful curriculum and learning management system, into the central source for a school’s digital infrastructure.
In this post, I introduce how we have utilized the ManageBac API at the Overseas Chinese Academy of Chiway, Suzhou to automate educational administration, gain better administrative oversite of our curriculum and program, perform learning and engagement analytics, and integrate platforms.
Our goals at OCAC:
As a K-12 school in China, our students, teachers, and staff have an array of diverse needs. One of the few things brining the divisions and departments together is the consistent use of ManageBac. Our main goals in working with the API were to:
- Make sure that ManageBac was up to date with the latest admissions information
- Push data from ManageBac to other systems and platforms
- Track usage on the ManageBac platform
To begin using the ManageBac API effectively, we needed a local database to compare data. This local database offers us a point of contrast, we can see if any changes have taken place on ManageBac and then push those changes to other platforms we are using.
This is a foundation, but it does not make the data visible or actionable. For this, we setup a Learning Record Store (Learning Locker) that utilizes the xAPI format.
What it looks like:
Educational Data tracking:
One of the best ways to see our systems at work is to look at our learning record store. This system takes data from our server which is converted into the xAPI format, from here, I create dashboards tailored to the needs of various stakeholders. Currently, we report enrollment and withdrawals, class creation/deletion, assignment creation, student performance and attendance. We also pull data from Moodle and our house system.
- Admin dashboard: This shows new enrollments and class creations, as well as withdrawals, archived classes and students, and deletions (critical to catch early)
- Divisional dashboards: These focus on looking at both academic and pastoral concerns:
- Checking for vertical and horizontal continuity in assessments between classes (how frequently teachers assess students)
- Identifying consistency of grading and looking for inconsistencies between teachers and classes
- Frequency of assessments, as well as assessment category/criteria types
- Correlations between behaviour and performance
- Ensuring teachers are meeting assessment targets
- Tracking report completion
- Student support dashboards: These show live data on student performance across subjects, and can demonstrate performance over intervals
- Charting gains over months in a semester, or between different semesters/academic years)
- Flagging at risk students due to:
- behaviour reprimands
- weak attendance records
- missing assignments
- failing grades
Integration with other systems:
Our school uses an internally developed admissions system within which all new students must be enrolled. As a large international school we have enrollments and withdrawals throughout the year. To simplify the process, we have worked to automate account creation and withdrawal in ManageBac.
Each Monday, the system
- checks for new enrollments
- identifies any new students it creates them in ManageBac
- Enrolls them in the correct homerooms and classes
- Checks if parents have accounts
- If so, it links those accounts to the new student
- If not, it creates the parent accounts too
- Uses Mailgun to notify divisional and teaching staff
- Check for student withdrawals from our program
- Withdraw the students from ManageBac
- Notify relevant staff with mailgun
House systems are notoriously tricky to run if teachers can dole out points throughout the day. Someone needs to add them up, keep a record of which teams are getting points and how well students are doing.
At OCAC, with over 2000 students, the logistics are nearly impossible. To address this need, I built a MERN-stack web-application that is populated via the ManageBac API.
By using the ManageBac API as our data reference, we can ensure that all students are added to the house system as soon as they are enrolled in the school, and that teachers can find them easily.
Furthermore, when teachers login, they can easily find all their classes from ManageBac and connect with the students in those classes.
… and beyond
While harnessing the ManageBac API is a powerful way to automate systems and use data to empower teaching and learning, it does not offer the full functionality available in the web platform.
At OCAC we ran into this challenge when we were looking to integrate our SchoolsBuddy transportation module with ManageBac homeroom attendance. To solve this, I setup a bot built with the Cheerio and Axios NodeJS modules. It’s functionality is quite simple:
- Login to SchoolsBuddy
- Fetch the bus attendance each day from SchoolsBuddy
- Login to ManageBac
- Update the homeroom attendance accordingly
- Report absences to divisions and operations with Mailgun
This gives us a single, authoritative source (ManageBac) for all attendance reporting in the school.
Where we stand
Harnessing the ManageBac API has allowed OCAC to empower its digital infrastructure to meet the specific routines, needs and interests of the school and its stakeholders. Platforms should not stand in a vacuum. By understanding how and what data they own, schools can build ecosystems that serve their specific and unique needs. By harnessing that data, schools can get a deeper insight into their program and help better develop their curriculum, support their teachers and empower their students.