Skip to the workbench
Back to the workbench

PROJECT FILE 10 / Subscriptions & operations / Source available

Swing Pool

One membership. Many rules working together.

A golf membership application connecting score tracking, subscriptions, monthly reward draws, and charity contributions. Member journeys and operational tools share explicit business rules.

PROJECT FLOW / 10Swing Pool
  1. 01Record scores
  2. 02Check eligibility
  3. 03Publish results
Process illustration · not a product screenshot

The problem

Membership status, qualifying scores, payment outcomes, and contribution records change independently. People need clear next steps while administrators need a reliable record of those changes.

What I built

  • Built React member and administration interfaces for onboarding, scores, subscriptions, charities, draws, and account notifications.
  • Structured the Express backend into domain modules with separate routes, validation, services, and persistence.
  • Implemented payment-event reconciliation and duplicate-event handling around the Stripe integration.
  • Added qualifying-score rules, draw publication checks, winner-proof review, and charity allocation records.

Inside the engineering

Eligibility is a domain rule

The backend builds eligibility from qualifying scores and subscription state. Backdated or inactive scores are excluded, and duplicate contest numbers are checked in the current qualifying set.

Keep allocations explainable

Contribution calculations split amounts into gateway fees, prize-pool, charity, and platform allocations using minor-unit amounts and explicit accounting records.

Separate preparation from publication

Draw simulations, published results, and winner-proof review are distinct operations. Publication checks and audit context make the transition from preparation to a recorded result explicit.

What this demonstrates

Shows full-stack delivery across a connected member experience, operational workflows, payment state, and domain-heavy backend design.

  • React
  • TypeScript
  • Node.js
  • Express
  • MongoDB
  • Stripe
  • Zod

Presented from the public implementation. Live payment processing, payouts, charitable impact, and production operation have not been independently verified.

LATEST GITHUB PUSH /