Description
Using serverless to quickly>>>>>
automate feedback processes and>
improve student experience.>>>>>
As an academic representative on my programme at Manchester Metropolitan, I had an important role in the process of student democracy— representing the views of my peers to the university.
Working through large volumes of data and feedback can be challenging. I thought that it may be helpful to use some of the skills I've developed in software engineering to streamline the process.
By doing this, I was able to address all the feedback I received, maintain constant communication with the student body, and have my efforts recognised as Course Rep of the Semester across the Faculty of Business and Law.
Instead of using a database, I decided to use Notion as the primary platform for storing data. This came down to a few factors:
Besides comments, I maintained a separate table of matters. When a comment was submitted, I (or another course rep) would associate it with any relevant cases we were working on (or create a new one). This was particularly useful for quantifying how many students were affected by a particular issue, helping us to both prioritise cases that required the most attention, and to advocate on the basis of clearly demonstrated student impact.
There were two platforms I used for automating tasks with the data stored in Notion: Azure Functions and Pipedream.
One of the important aspects of academic representation is maintaining constant communication with students. I wanted to automate some parts of this, so my peers could have a better idea of how their feedback is acted upon and when.
Pipedream was especially helpful in this. Students would be updated on progress regarding issues that affected them, based on the comments they submitted.
For more advanced automations, Azure Functions was more appropriate. For example, using Puppeteer, I was able to automatically generate .pdf reports that could be distributed to University staff, departments and services.
Student representation includes various long-running processes, which require input from many parties— students, representatives, faculty staff, central administration, university services, etc.
The most common example is the processing of feedback regarding curriculum delivery— the representation team receives many comments, from many students, regarding many modules. These comments need to be reviewed and bundled, then passed onto staff.
When the process is manual, a lot of information gets lost and it's particularly challenging to give students tailored responses.
I decided it's important to not only automate tasks (like report generation), but to create a complete solution to manage workflows. Using inngest, I designed an event-driven architecture to do this. Students could use different forms and links that triggered webhooks and started execution of appropriate workflows.
Since some processes are long-running, and involve many parties, this seemes like a good fit for an event-sourced architecture.
When a student raises a serious concern, there are procedures for escalating the matter.
During initial stages of these procedures, the representative needs to act as an intermediary between the student and the university, however, this can introduce delays.
For example, the representative may need to await consent to reveal the student's identity. The workflows running on inngest helped to streamline this process, so that incidents could be escalated instantly, instead of relying on the representative to manually trigger the process.
Inngest is not too restrictive in terms of the platform it can run on. This meant that I could continue using Azure Functions, and simply build on top of tasks that were already automated.
I value transparency, trust, and honesty when showcasing my work. As part of this, and in the interest of both legal and ethical compliance, certain disclosures are made below.
To protect privacy of individuals and sensitive information, some data has been redacted, altered, or replaced with fictional data or placeholders.