Club Management System
2026 Members, waiting list, seasons and invoicing In use
A management system for clubs and associations: members and guardians, the waiting list, seasons, volunteers, equipment and invoicing in one place. Built for Coding Pirates Odense, as a core other clubs could run with their own branding.
Why
A club like ours has children on a waiting list, guardians, seasons, volunteers, borrowed laptops and invoices, and all of it has to fit together. I wanted one place for it, built around how a volunteer club actually runs.
It is built for Coding Pirates Odense, but as a white-label core. Club name, logo, currency, language and which modules are turned on are all settings, so another club could run it as their own.
Seasons, calendar and the waiting list
A season generates one event per meeting. If the schedule changes, the existing sessions are moved instead of recreated, so the RSVPs, volunteer signups and attendance on them are kept.
When a spot opens, the waiting list invites the next child automatically, and the invitation expires if nobody answers. Parents can see where they are in the queue.
The rest of the club
- Volunteers sign up on the events they help with, and the team leaders are warned when an event is short of people.
- Equipment loans with a signed agreement and return reminders.
- Invoicing with one invoice per family and a discount for children who have been in the club for several seasons. The integration with Dinero (the accounting system) is built and tested against a mock, but not live yet.
- A QR check-in screen at the door.
Handling children's data
The club needs child protection certificates for its volunteers, which means collecting CPR numbers. Those are encrypted (AES-256-GCM) and deleted again on a schedule. Inactive accounts are cleaned up automatically for GDPR, and every role only sees what it needs.
Sign-in has account lockout, two-factor and passkeys, and changes are written to an audit log.
How it is tested
There are unit tests for the business logic (the waiting list, pricing, seniority, cleanup, etc.). On top of that an end-to-end suite starts from an empty database, walks through the setup wizard, signs in as every role and visits every page to check that nobody can see or do more than they should.