Hacker School Services
Menu

From application to donation receipt

5 min read

For the Hacker School supporters’ association we rebuilt the website and put a membership system of its own behind it. What it does and why it is not an off-the-shelf product.

Future Hackers and Builders is the supporters’ association of Hacker School, the organisation our team comes from. Until the end of October its website was a single page with a few email links. Anyone who wanted to become a supporting member filled in a paper form, and then the manual work began: assign a membership number, write a membership certificate, issue an invoice, go through bank statements and, the following year, issue a donation receipt (Zuwendungsbestätigung). All of it done by volunteers.

We rebuilt the website and put a membership system behind it that takes over exactly these steps. Both have been live at future-hackers-and-builders.de since the end of October.

Why not an off-the-shelf product

There is ready-made software for running an association, and for many associations it is the right choice. Here, three things spoke for a solution of its own.

The fee regulations define seven supporter packages for individuals and companies, voluntary top-up amounts and a half-year rule for the year of joining. These rules live in exactly one place in the system. Website, application form, fee preview and invoice all read from it. If the general meeting changes the fee regulations, one file is updated.

Website and administration work on the same data. An application that comes in online does not have to be typed up by anyone.

And there are no licence fees. The application runs on the free tier of Azure Static Web Apps; only storage and email delivery are paid for. The data is held in a data centre in Frankfurt.

The application: online and still in writing

The membership application has three steps: choose a package, enter your details, confirm the articles of association and the privacy notice. From the first step, the page shows the amount due in the year of joining. If membership starts after 1 July, it is halved.

Because the articles require a written application, applicants confirm their details through a link they receive by email. Only then does the application count as received. As a record, they get a PDF copy with all details and the times of submission and confirmation. Spam is kept out by a captcha from a European provider that does without picture puzzles.

Accepting with one click

In the admin area, the board sees every application with all its details. A click on “Accept” assigns the membership number and creates the membership certificate and invoice, already at half the amount for anyone joining in the second half of the year. Before anything is sent, the system shows the PDFs and the email as a preview.

Every invoice carries a GiroCode. Scanning it with a banking app fills in recipient, IBAN, amount and payment reference. That helps the association as well, because a correct payment reference makes the next step easy.

Only invited board members can sign in, using their Microsoft or GitHub account. There is no separate password for the membership system. Every change is logged with person, time, and old and new value.

The money: upload the statement, check the matches

In day-to-day association work, matching payments takes the most time. Whoever keeps the accounts uploads the bank statement as a CSV file. The system looks for an invoice or membership number in the payment reference and assigns the payment: if the amount matches, the invoice is paid; if it is lower, it is partly paid. Overpayments and transactions without a match go into a list for review. Incoming payments that are not membership fees can be recorded as donations right there. If the same file is uploaded twice, the system recognises the duplicate lines.

Once a year, an annual run creates the fee invoices for all active members, again only after a preview. Reminders come in two stages with fixed minimum intervals. Invoices are never deleted but cancelled, so the books stay complete.

Donation receipts at the start of the year

For the fees and donations paid in the previous year, the system creates annual summary receipts following the official German template. Individual receipts for donors without a membership are available as well. The annual run stays locked until tax office, tax number and the tax office’s notice are fully on file.

Retention periods that are kept

The privacy policy states fixed retention periods, and the system keeps them by itself. A nightly job deletes unconfirmed applications and old contact requests and anonymises former members once the retention period has expired. A data subject access request under the GDPR is an export at the click of a button. Once a week, a backup is written to storage that cannot be overwritten for a year.

The public website has no tracking and no cookies, and therefore no cookie banner.

The website itself

The single page has become several: mission, membership with a package comparison, a page for companies, transparency following the ten points of the Transparent Civil Society Initiative, FAQ, news and a version in Easy Language. Supporting members who have agreed to it appear with name and logo on the home page. This supporter wall is maintained straight from the membership system.

Behind it all are more than 1,400 automated tests. Every change is checked for accessibility, loading time and security settings before it goes live.

What applies to other associations

Not every association needs a membership system of its own. Where the fee regulations are simple and the website does not take applications, standard software is enough. The places where volunteer time gets lost are almost always the same, though: typing up applications, matching bank statements by hand, writing donation receipts one by one.

How we approach projects like this is described in Advise, implement, operate. More on our IT services is on the IT page.

← Back to overview

Same challenge?
Let's talk.

We'll get back to you within one working day.