CASE STUDY — 01

SHELTERLINK

A volunteer management platform for Assisi Animal Sanctuary.

ROLE — Design & development (solo)

STACK — Node.js · Express · MySQL · Vanilla JS · PicoCSS

STATUS — Preparing for live rollout

YEAR — 2025–26

ShelterLink admin dashboard with volunteer metrics and recent activity

HERO SCREENSHOT — DASHBOARD OVERVIEW

THE PROBLEM

Assisi Animal Sanctuary runs on volunteers — and coordinating them ran on paper rotas, phone calls and memory. Scheduling shifts, tracking who was trained for which roles, and onboarding new volunteers all ate staff time that should have gone to the animals. Nothing was broken, exactly. It just didn't scale, and too much of it lived in people's heads.

THE BUILD

ShelterLink is a full-stack platform built around how the sanctuary actually works. Volunteers register and build a profile; staff assign roles, manage shifts and see who's coming in from an admin dashboard; records export to CSV when they're needed elsewhere.

Under the surface it's deliberately unflashy: Node and Express on the back end, a MySQL database, and a plain JavaScript front end — no framework, no build step. Security was treated as a feature, not an afterthought: authentication, rate limiting and a strict content security policy are baked in, because a charity holding volunteers' personal details can't be casual about it.

  • Volunteer registration & profiles
  • Shift scheduling
  • Role management
  • Admin dashboards
  • CSV exports
  • Auth & security middleware
ShelterLink volunteer list and profile detail screenshot
SCREEN 01 — VOLUNTEER LIST AND PROFILE DETAIL
ShelterLink volunteer browse shifts page showing available opportunities
SCREEN 02 — SHIFT PLANNER WITH ROLE ALLOCATION
ShelterLink admin dashboard with volunteer stats and application review
SCREEN 03 — ADMIN DASHBOARD AND EXPORT CONTROLS

DECISIONS

No framework, on purpose

The sanctuary doesn't have a dev team. Whatever I built had to be maintainable by whoever touches it next, years from now. Plain JavaScript with no build step means nothing to update, nothing to break, nothing to relearn.

PicoCSS over a design system

Semantic HTML with sensible defaults kept the front end small and accessible without a pile of classes. The design budget went on clarity, not chrome.

Boring is a feature

Every technical choice optimised for the same thing: a small charity being able to rely on this without me in the room.

THE RESULT

ShelterLink was submitted and demonstrated as my MSc dissertation at Queen's University Belfast — I graduated with Commendation. Development didn't stop at submission: the platform is now being prepared for live rollout at the sanctuary.

— STAKEHOLDER NAME, ASSISI ANIMAL SANCTUARY