The Sociedade Musical Fraternidade Operária Grandolense is the oldest association in the municipality of Grândola, in southern Portugal: a philharmonic band with its own music school, founded in 1912. Like many cultural associations, it ran everything by hand — membership fees in a paper ledger, members in an Excel sheet, announcements over WhatsApp and rehearsal attendance kept from memory. The board's workload, carried by volunteers, was growing faster than the time they had.
The challenge
- Membership and tuition fees tracked on paper, with no clear view of who was up to date and who was behind.
- Members, musicians, students and parents scattered across several spreadsheets, with duplicated and outdated data.
- Communication split between WhatsApp groups, personal email accounts and phone calls.
- Instruments and uniforms lent out with no record of who had them or since when.
- An old website that was hard to update and had no way to take sign-ups.
What we did
A new website that feeds the platform
We built an editorial website in the association's own image, with news and concerts managed from a simple content panel. Music-school enrollments and new-member applications no longer land in an inbox: they go straight to the board's dashboard, where each request becomes a member record in one click.
A custom management platform
At the heart of the project is a single platform for the whole association. The same database serves five different roles, and each person sees only what concerns them:
- Board — members, calendar, treasury, school, inventory, communications and a dashboard showing the health of the band section by section.
- Musicians — their schedule, concert attendance confirmations, sheet music for their section, the instruments they have on loan and their history with the band.
- Teachers — their classes, lesson notes and student attendance.
- Parents and guardians — one account for all their children, with classes and tuition fees.
- Members — their fee status, how to pay and their payment history.
Treasury with certified invoicing and online payments
Membership fees, school tuition, enrollments and insurance became plans with a price and a billing cycle. The platform raises the charges, issues a certified invoice through Moloni (as Portuguese tax law requires), takes payments by Multibanco and MB Way — Portugal's most used payment methods — through ifthenpay, and sends automatic reminders before and after each due date. The old fee sheet is now a yearly matrix that is always up to date.
Rehearsals, attendance and motivation
Every rehearsal and concert has its own call sheet, with attendance confirmed by email and counted per section. Attendance can be recorded with an NFC card at the door of the rehearsal room. A progression system — levels, attendance streaks and badges — recognizes the people who show up, without full leaderboards or exposing who is missing.
Everyday IT support for the association
Beyond the software, we look after the IT that a volunteer board rarely has time for:
- Professional email on the association's domain for the board and the school, with setup, migration and support when something stops working.
- Newsletters and notifications sent from the platform, with member and parent lists that are always current and a delivery log.
- Simple automations with n8n: every new sign-up triggers the welcome email, notifies the right person on the board and updates the spreadsheets the association still uses.
- Legacy data import from Excel, validated before saving and with duplicate records merged.
The result
The board now has on a single page what used to live in notebooks, phones and spreadsheets: who applied to join, who is behind on fees, who is coming to the next concert and which instruments are out on loan. Members pay by Multibanco or MB Way and receive their invoice without anyone issuing it by hand, and musicians, teachers and parents each have their own area, on desktop or mobile.
The images in this case study were captured on a demo instance with fictitious data, so that no real member information is exposed.

