CASE STUDY - 01
Volunteer rotas, roles, and an admin dashboard for Assisi Animal Sanctuary.
ROLE - Design & development (solo)
STACK - Node.js · Express · MySQL · Vanilla JS · PicoCSS
STATUS - Ready for live use
YEAR - 2025-26

Admin dashboard
Assisi runs on volunteers. Who was in, who was trained for which jobs, and who was covering Sunday all lived in paper rotas, phone calls, and whoever happened to remember. Staff spent time chasing people when that time should have gone to the animals. It worked for a smaller list. It did not work once the list got long.
ShelterLink is the system they asked for. Volunteers sign up, fill in a profile, and pick shifts they can actually do. Staff assign roles, plan the week from an admin dashboard, and export records to CSV when they need them elsewhere.
The stack is plain on purpose: Node and Express, MySQL, vanilla JavaScript, PicoCSS. No framework, no build step. Authentication, rate limiting, and a strict content security policy are in because a charity holding volunteer details cannot be casual about that.



The sanctuary does not have a developer on staff. Whatever I left them had to still make sense in a few years, to whoever opens the folder next. Plain JavaScript with no build step means nothing to update, nothing to break, nothing to relearn.
PicoCSS kept the front end small and readable without a pile of classes. The design budget went on the rota, not on chrome.
ShelterLink started as my MSc dissertation at Queen's University Belfast. I graduated with Commendation. The platform is ready for the sanctuary to use.