Knowledge Mark G
Hire Me

Nonprofit platform · live in production

Community Events,
Donations and Shareholder Platform

Donations with UK Gift Aid, event ticketing, hall hire and a community-shares scheme.

A platform for a community organisation: events and ticketing, venue booking, one-off and recurring donations, campaigns, subscriptions and a community share offering with certificates and bank-transfer verification.

Processed in donations
£65,700+
Event tickets sold
2,100+
Registered accounts
600
Events run
29

£65,700+

Raised online

01Summary

A UK community charity's full digital operations platform — online donations with Gift Aid, event ticketing with QR-coded PDF tickets, venue hire, a community-shares membership scheme and recurring donations — plus a separate staff-only back office for reporting, verification and content. Two independently deployed ASP.NET Core MVC apps share one SQL Server database.

  • UK Gift Aid compliant
  • Four payment methods
  • Automatic PDF documents
Community Events, Donations and Shareholder Platform

02The Problem

A community charity running campaigns, ticketed events, hall hire and a community-shares scheme had all of it spread across manual processes:

  • No online donations with UK Gift Aid properly captured and evidenced with a signed declaration — a real tax-compliance requirement.

  • No self-serve ticketing — tickets, capacity and pricing tracked by hand per event.

  • No online booking or payment for the charity's own hall.

  • No online process for the community-shares scheme that is part of its ownership structure.

Two very different audiences — the public and internal staff — needing separate access.

03My Role & Scope

End-to-end development, from architecture to deployment and ongoing production support.

  • Donor-facing siteOne-off and monthly donations, ticket purchase, venue booking, share applications, a user dashboard and the Stripe/PayPal webhooks behind them.
  • Payment orchestrationFour methods on one donation model — Stripe, PayPal, bank transfer with a verification queue and proof upload, and cash.
  • Gift Aid handlingUK-compliant declarations, PDF certificates via iText7, emailed with the receipt and retrievable by staff.
  • TicketingQR-coded PDF tickets, per-event pricing, discount codes, combined multi-ticket PDFs and confirmation emails.
  • Community sharesA multi-section application for individuals or companies, with share certificate and membership card PDFs.
  • Staff back officeDonation, campaign, ticket and venue reports with Excel/CSV export, bank-transfer verification and role-based staff accounts.

04Architecture

Every PDF — Gift Aid declarations, receipts, tickets, share certificates, membership cards — goes through one render-HTML-then-convert iText7 pipeline. The two apps share no internal API; the database is the only link, which directly caused the first challenge below.

  1. Donor / public app

    • ASP.NET Core MVC
    • Donate
    • Buy tickets
    • Book the venue
    • Buy shares
    • Manage subscriptions
  2. Stripe · PayPal

    • Checkout and webhooks
  3. SQL Server via EF Core

    • The only shared integration
    • About 46 domain models across 35 tables
    • 56 migrations
  4. Staff admin app

    • Separate ASP.NET Core MVC deployment
    • Reporting
    • Verification
    • Discount codes
    • Content
    • RBAC

05Key Features

Everything the platform does, in one place.

  • Multi-method donationsOne-off or monthly, via Stripe, PayPal, bank transfer or cash, with Gift Aid opt-in on the same form.
  • Gift Aid automationUK-compliant declaration text, PDF certificates emailed automatically and retrievable by staff.
  • Event ticketingPer-event pricing, QR-coded PDF tickets, combined PDFs, discount codes and confirmations.
  • Venue bookingOnline hall hire with its own Stripe payment and confirmation flow.
  • Community shares£500-per-share applications with certificate and membership card generation.
  • Recurring donations & reportingWebhook-driven Stripe subscriptions, and Excel/CSV reports for every income stream.

06Engineering challenges & how I solved them

Real problems found against live production data — with the actual debugging path, not just the fix.

  1. Gift Aid certificates existed but the back office could never find them+

    Symptom: Donors who had already been emailed a Gift Aid certificate still showed "not available" in the admin list.

    Investigation: The donor app generates and saves certificates in its own web folder; the admin app is a separate deployment checking its own disk, which never had them.

    Fix: Made the admin app self-sufficient — it checks a local cache and otherwise regenerates the certificate on demand from the donation's own data.

  2. A UK charity's admin screen asked for an Indian tax scheme+

    Symptom: Donation details showed "PAN Card Number" and "80G Certificate" fields against UK taxpayer donations.

    Investigation: The view had been adapted from a template built for another country; PAN and 80G have nothing to do with Gift Aid.

    Fix: Replaced them with UK taxpayer status and live Gift Aid certificate download, wired through the on-demand generation.

  3. "Print Receipt" did not produce a receipt+

    Symptom: The button printed the whole admin page — sidebar, top bar and buttons included.

    Fix: Added a server-rendered PDF receipt from the donation's actual data, using the same iText pipeline as the certificates.

  4. One donation, two tables: keeping Gift Aid in sync+

    Investigation: Campaign donations live in their own table but link back to a base donation, and Gift Aid status can be recorded on either.

    Fix: Resolved and checked both records explicitly rather than trusting whichever row was in front of the code.

Case study

Gift Aid certificates existed but the back office could never find them

Problem

Donors who had already been emailed a Gift Aid certificate still showed "not available" in the admin list.

Investigation

The donor app generates and saves certificates in its own web folder; the admin app is a separate deployment checking its own disk, which never had them.

Solution

Made the admin app self-sufficient — it checks a local cache and otherwise regenerates the certificate on demand from the donation's own data.

07Impact

What changed once the platform was in place.

Processed in donations
£65,700+
Event tickets sold
2,100+
Registered accounts
600
Events run
29
  • Gift Aid certificates became retrievable from the back office for every taxpayer donation — past ones included.
  • Removed an irrelevant India-specific tax UI from a UK charity's system.
  • Replaced a print-the-page pseudo-receipt with a real, data-accurate PDF.
  • All shipped admin-side only, leaving the live donor flow untouched, and verified against the production database.

ASP.NET Core MVCEF CoreSQL ServerStripe (payments + subscriptions)PayPaliText7 PDFMailKitQR codesShared-database architectureUK Gift AidRBACSerilog

Have a similar project?

Let's build something great together.

From shipping platforms to custom business tools — I can help turn your idea into reality.

  • Free consultation
  • Clear roadmap
  • On-time delivery