I built SOMA (Sport Organization Management) as a working admin app for a sports club. The brief was ordinary and messy: members in one place, events on a calendar, payments that someone can actually check, documents that are not a shared drive, requests that do not live in chat.

I designed the product and wrote both sides — Vue on the front, Node.js / Express on the back, SQLite for storage.

Accounts. A member directory: list, view, edit. People can maintain their own profiles; staff can run the rest.

Events. A calendar I wired for creating and publishing what the club is doing.

Payments. Tracking contributions so the financial side is visible instead of implied.

SOMA payment tracking

Documents. Create, list, and view club files. Templates so the recurring paperwork does not start from a blank page each time.

SOMA documents

Requests and planning. A queue for member requests, plus a planner for sessions and upcoming work. Groups cover teams, age bands, and committees.

SOMA planner

This is the project that shows I can take a real organisation’s workflow and ship a full-stack app for it — not only games.