Vergoedingen voor vrijwilligers en verenigingswerkers, van intake tot uitbetaling, in één gecontroleerd proces.Allowances for volunteers and association workers, from intake to payment, in one controlled process.

Interne webapplicatie voor een Belgische voetbalclub. Vervangt losse formulieren, mails en handmatig opgestelde betaalbestanden door één flow: goedkeuring per team, HR-validatie, SEPA-betaalbatches en een audit trail.

Internal web application for a Belgian football club. Replaces loose forms, e-mails and hand-made payment files with one flow: per-team approval, HR validation, SEPA payment batches and an audit trail.

  • Python
  • Flask
  • PostgreSQL
  • SEPA
  • Live

De applicatie in 20 secondenThe application in 20 seconds

Lotte PeetersSteward · wedstrijddag · 4,5 uSteward · match day · 4.5 h
€ 40,50

ControlesChecks

  • Persoon herkendPerson recognised 100 %
  • IBAN geldigvalid
  • Fiscale limietFiscal limit 62 % · € 2.418,50 / € 3.900,00
  • CombinatieverbodStatus conflict geen conflictnone
  • Nog aan te vullen vóór HRTo complete before HR adresaddress

GoedkeuringsketenApproval chain

  1. ✓LeidinggevendeTeam leaderdoorby Yassin El Amrani · 25/08
  2. 2HR ValidatieJonas De Wilde
  3. 3GoedgekeurdApprovedklaar voor betalingready for payment
Afgewezen · LeidinggevendeRejected · Team leader Dagvergoeding over maximumDaily allowance over maximum

Welke stappen gelden, is instelling per team. Geen code.Which steps apply is a per-team setting. No code.

Betaalbatch 2026-08Payment batch 2026-08

NaamNameStatuutStatusNetto
Lotte PeetersVrijwilligerVolunteer€ 40,50
Sam VermeulenVerenigingswerkerAssociation worker€ 296,42
Nour HaddadVrijwilligerVolunteer€ 82,96
3 transacties3 transactions€ 419,88
SEPA-bestand aangemaaktSEPA file createdIngediend: enkel met reden terug te draaienSubmitted: reversible only with a reason

Fiscaal verbruik per persoonFiscal usage per person

Lotte Peeters vrijwilliger · jaarmaximumvolunteer · yearly maximum62 %
Sam Vermeulen verenigingswerker · kwartaalplafondassociation worker · quarterly ceiling84 %
Nour Haddad vrijwilliger · jaarmaximumvolunteer · yearly maximum103 % BLOK
Dimona ✓Fiche 281.27 klaarTax form 281.27 ready

Recente wijzigingenRecent changes

TijdTimeGebruikerUserActieActionWatWhat
14:02jonas@ · HRadvanceHR Validatie → Goedgekeurd
13:47yassin@ · LeidinggevendeTeam leaderapproveintake #412
13:20yassin@ · LeidinggevendeTeam leaderadvanceLeidinggevende → HR Validatie
09:15lotte@ · InvoerderEntrycreate∅ → {Lotte Peeters, 4,5 u}

    Nagebouwde fragmenten van de applicatie met verzonnen namen en bedragen.Re-created fragments of the application with invented names and amounts.

    Knelpunt en oplossingProblem and solution

    Een club werkt met tientallen vrijwilligers, stewards en verenigingswerkers. Elke prestatie moet geregistreerd, goedgekeurd en uitbetaald worden binnen wettelijke grenzen die per statuut verschillen.A club works with dozens of volunteers, stewards and association workers. Every activity has to be registered, approved and paid within legal limits that differ per status.

    Waar het kneldeWhere it hurt

    • Registratie via formulieren, mails en Excel, zonder vaste goedkeuringsrouteRegistration through forms, e-mails and Excel, with no fixed approval route
    • Dag-, jaar- en kwartaalmaxima manueel bewaakt; fouten pas zichtbaar bij de betaling of de fiscale ficheDaily, yearly and quarterly maxima tracked by hand; errors only surfaced at payment or on the tax form
    • Betaalbestanden met de hand opgesteldPayment files assembled by hand
    • Dimona-aangiftes en fiches 281.27 opnieuw overgetypt uit dezelfde gegevensDimona declarations and 281.27 tax forms retyped from the same data
    • Eén persoon overzag het geheel; geen spoor van wie wat wijzigdeOne person saw the whole picture; no trace of who changed what

    Hoe de applicatie dat oplostHow the application solves it

    • Eén intake voor alle prestaties, met een vaste goedkeuringsketen per teamOne intake for every activity, with a fixed approval chain per team
    • Wettelijke grenzen automatisch gecontroleerd vóór iemand goedkeurtLegal limits checked automatically before anyone approves
    • Eén SEPA-betaalbestand per maand, rechtstreeks naar de bankOne SEPA payment file per month, straight to the bank
    • Dimona en fiches 281.27 uit dezelfde gegevens, zonder overtypenDimona and 281.27 tax forms from the same data, no retyping
    • Meerdere mensen delen het overzicht; elke wijziging is traceerbaarSeveral people share the overview; every change is traceable

    Wat de applicatie doetWhat the application does

    • Intake via formulier, template of Excel-import, met herkenning van bestaande personenthrough form, template or Excel import, with recognition of existing persons
    • Goedkeuring in stappenStep-by-step approval door leidinggevende, directie en HR, instelbaar per teamby team leader, management and HR, configurable per team
    • Wettelijke grenzenLegal limits (jaar- en kwartaalplafonds, combinatieverbod, IBAN) afgedwongen vóór goedkeuring(yearly and quarterly ceilings, status conflicts, IBAN) enforced before approval
    • Betaalbatch per maandMonthly payment batch als SEPA-bestandas a SEPA file
    • Dimona en fiches 281.27and 281.27 tax forms
    • Audit trail van elke wijziging: wie, wanneer, oud en nieuwof every change: who, when, old and new

    Hoe ze gebouwd isHow it was built

    • GDPR-conform: rolgebaseerde toegang, audit trail, VPN-beveiligde toegangGDPR-compliant: role-based access, audit trail, VPN-protected access
    • Automatische controle van IBAN en wettelijke maxima bij elke goedkeuringIBAN and legal maxima validated automatically on every approval