P-031 2024 Social Impact

A Drop of Life

Fundraising and donation platform for a Hong Kong charity

Fullstack Developer
Fundraising and donation platform for a Hong Kong charity

Context

A Drop of Life is a Hong Kong-based charity running fundraising campaigns. Built full-stack, from zero to production, as a Senior Programming Analyst at Wistkey Technologies Limited (Hong Kong SAR, remote) — one of four client engagements handled there. The platform needed to support both the internal admin side — creating and managing campaigns — and the public-facing donation flow, with international payment support since donors were not limited to one region.

Technical challenge

Payment integration was the crux of it: supporting both PayPal and Stripe meant handling two different payment provider APIs, webhook flows, and failure states behind one consistent donation experience, rather than exposing the provider split to the end user.

Architecture & decisions

Built on Laravel + Inertia + Vue, with campaign and donation data modeled independently of payment provider — donations recorded a provider-agnostic transaction, with PayPal/Stripe-specific handling isolated behind that boundary. That separation meant adding or changing a payment provider later wouldn’t touch campaign logic at all.

Contribution

Built it end to end as a full-stack developer: designed the application structure, campaign management, the donation flow, and both payment integrations, then deployed it to a VPS.

Result

Gave A Drop of Life a self-service platform for running fundraising campaigns and accepting international donations directly, rather than relying on manual or single-provider payment collection.

Lesson

Isolating payment-provider logic behind a provider-agnostic transaction model early made supporting two providers only marginally more work than supporting one.

Key features

  • Admin: campaign management
  • Admin: fundraising management
  • User: make a donation
  • User: payment with PayPal/Stripe