Jaden Flanery

Project 10 of 10

VSA Eboard App

An operations hub for Mizzou VSA's executive board — events, attendance, money, and handoff in one role-aware app.

In developmentBuilt for Ryan Thai · Mizzou VSA president · feature-complete, launching on the org's own accounts

Ever watch a club run on scattered sign-up sheets and lost receipts, then hand the whole mess to whoever’s next? What if every repeat chore lived in one app that quietly hands itself off at the end of the year?

The goal

Mizzou's Vietnamese Student Association runs on repeat actions: event check-in sheets, attendance tallies, reimbursement records, transition documents nobody can find. This app consolidates those operations for the ~10-officer board, with one test for every feature — does it delete a repeat action?

It records and reminds, and deliberately never moves money or replaces university systems. Events get QR check-in links that work for any attendee with no account; officers get role-aware views governed by a permissions grid the president can change live.

Background

The design came out of working sessions with Ryan Thai, VSA's incoming president, and the org's actual transition documents. The architecture splits into two worlds: an authenticated officer app behind magic-link sign-in, and a public server-rendered check-in page built to be fast on a bad connection at a crowded event.

Everything is term-scoped from day one — when Ryan's term ends, the data becomes a read-only archive the next president inherits, and the infrastructure lives on the org's own accounts so there's nothing to hand off.

Built with AI

This build runs my full pipeline end to end: brainstorm with the stakeholder, write the design spec, generate an implementation plan, then execute it task by task with AI under review — the magic-link auth flow, the capability-aware app shell, and the admin panel landed the same day the spec was approved.

It's also the clearest case of building for someone else: Ryan has no coding background, so plain-English labels, empty states, and errors are a hard requirement in the spec, not a polish item.

Stack

Next.jsTypeScriptSupabaseVercel