The Challenge
Vejrup IF faced a common association challenge: expenses and trainer payouts were handled manually through spreadsheets, paper forms, and long email threads. That created unnecessary admin overhead, a higher risk of mistakes, and limited visibility into each case.
There was also a specific need to handle the annual symbolic trainer salary at season end in a more structured and transparent way.
The goal was a solution that could:
- Streamline approvals with clear role ownership
- Handle outlay requests end-to-end, including approval flow and closure
- Integrate with Conventus without duplicating member setup or owning member records
- Ensure consistent documentation for bookkeeping and payout handling
- Reduce manual work by automating status flow and communication
- Give both trainers and admins ongoing visibility into progress
The Solution
I built a combined expense and payout platform in ASP.NET Core MVC with a focus on reliability, traceability, and day-to-day usability.
Core Architecture
The platform follows a multi-step flow:
- Requester submits an expense or annual trainer payout request
- Approver reviews and approves or rejects the request
- Recipient completes required final details
- Administration executes payout and closes the case
Every step is logged through Entity Framework Core, creating full history across edits, decisions, and status transitions.
Key Features
PDF Documents
The system generates PDFs with iText7, ensuring consistent documents for bookkeeping and payment processing. This eases the bookkeeper’s work, since documents no longer need to be scanned manually.
Danish Formatting
Amounts, dates, and document fields follow Danish conventions (da-DK), making outputs practical and familiar for local operations.
Automated Notifications
MailKit sends status-based notifications so the right people are informed at the right time.
Conventus as Source of Truth
The solution is designed to work with Conventus, so member setup continues in the regular Conventus workflow. The payout system does not unnecessarily duplicate this data and is not used as the system of record for member details.
Email OTP Sign-In
Users sign in with a one-time passcode sent by email. This keeps access simple for association users while improving security without static passwords.
Role-Based Access
Users only see actions and data relevant to their role, which improves both simplicity and control. In practice, an administrator/payout responsible creates the request, after which the recipient confirms their details and provides bank account information. The system does not approve or execute payouts itself, but provides the documentation needed for bookkeeping and for the bookkeeper to complete the payout.
GDPR and Data Retention
The solution supports GDPR by limiting data retention periods, so personal data is not kept longer than operational and documentation needs require.
Prepared for Future Integrations
The architecture is intentionally modular, making it straightforward to add future integrations, such as bookkeeping systems.
Containerized Operations
The solution is prepared for Docker-based deployment, making operation and environment handoff straightforward.
Technical Highlights
- .NET 8 as the platform for modern C# development
- Entity Framework Core for persistence, relationships, and traceability
- iText7 for reliable PDF document generation
- MailKit for robust email communication
- Docker Compose for local development and operations
Outcome
Vejrup IF gained a significantly simpler process for both reimbursements and annual trainer payouts. The workflow now has fewer manual steps, better transparency for everyone involved, and more consistent documentation.
In practice, this reduces administrative load during the season and makes season-end symbolic trainer payouts safer and easier to execute.
It also gives the association a platform that can evolve over time instead of being replaced when new requirements appear.
The project shows how a focused digital system can make a measurable difference in association operations when it is grounded in real workflows and practical needs. The same solution pattern can also be adapted for other associations or companies with similar reimbursement and approval processes.