← Back to all work Automation · Google Apps Script

SEVAI Assignment System

An assignment engine for AISC's community-service program that places 150+ students into 12 activities by ranked preference and grade balance, turning a multi-day manual scramble into a one-click run.

150+
Students assigned
12
Activities
20–30
Hours saved
700+
Lines of script
Overview

What it is

SEVAI is AISC's community-service program. Every cycle, more than 150 students rank their preferred activities, and someone has to place each of them into one of 12 options, while respecting capacity limits and keeping grades balanced. I built a complete Google Apps Script automation that does the entire assignment, sends every notification, and ships with a full documentation package.

Built for Riedwaan Kader and deployed on November 3, 2025.

The Problem

A hand-built jigsaw, every cycle

Assigning 150+ students to activities by hand is the kind of task that eats a full working week. You're juggling ranked preferences, hard capacity caps per activity, and a fairness constraint, no activity should skew toward a single grade. Do it manually and you get errors, late nights, and a process only one person understands.

It also wasn't repeatable. Each cycle meant starting the puzzle over from scratch, with no guarantee the result was even close to optimal for student preferences.

What I Built

A preference-and-balance assignment engine

The system is a 700+ line Apps Script application driven by ranked student preferences, with the logic and safeguards a real operational tool needs:

  • Grade-balance algorithm. Targets roughly 33% per grade in each activity so no group is over-concentrated.
  • Capacity management. Respects hard caps per activity and handles overflow gracefully.
  • Automated email notifications. Sends confirmations to students, teachers, and advisors automatically.
  • Test mode. Run the full assignment and preview results without sending a single email.
  • Manual override. Lets the program lead adjust individual placements when human judgment is needed.

It shipped as a complete handover package, 8 files including the full script and operating documentation, so the program could run without me in the loop.

Impact & Results

A week of work, reduced to a click

20–30
Hours saved
per assignment cycle
150+
Students placed
by ranked preference
1
Click to run
fully repeatable

The automation removed 20–30 hours of manual work per cycle and made the process repeatable, fair, and transparent. The program lead could re-run it, preview results in test mode, and trust that capacity and grade-balance rules were enforced consistently every time.

Just as important, it became a template. The same assignment-engine pattern went on to power a whole family of student-logistics systems at the school, Discover India, Discovery Day, and STEAM Week.

Lessons Learned

What I'd carry forward

  • Test mode is non-negotiable.

    Letting the lead preview a full assignment before any emails go out turned a high-stakes script into a tool people actually trusted.

  • Build for handover from day one.

    Shipping documentation alongside the code meant the program never depended on me being available to run it.

  • Solve one problem well and it generalizes.

    A clean preference-and-capacity engine for SEVAI became the backbone for three more programs.

See how this pattern scaled across the school in the Student Assignment Systems case study.

Have a manual process that should be a one-click run?