2024

Streamlining Academic Representation

Project


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.

Data collection and management

Instead of using a database, I decided to use Notion as the primary platform for storing data. This came down to a few factors:

  • Pace of development
    Since things were moving very quickly, I needed a solution that was easy to adapt— that pushed me to either document databases (i.e. schemaless), or a low-code option like Notion or Airtable.
  • Automation and Integration
    Notion offers some integrations, but notably, allows for sending HTTP requests. This makes it really easy to automate tasks using serverless functions.
  • Data collection
    Notion can generate user-friendly forms that connect directly to databases.
  • Sharing
    Workspaces and pages can easily be shared with granular permissions.

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.

Automation

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.

Orchestration and Managing Workflows

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.

Why inngest?

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.

Disclosures

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.

C1Confidentiality and redaction

To protect privacy of individuals and sensitive information, some data has been redacted, altered, or replaced with fictional data or placeholders.