The big picture
A role-based, unified club operating system where the same app adapts its interface for a member, a club secretary, a fixture secretary, a bar volunteer, or a central admin. The platform connects membership data, bank and payment feeds, event calendars, pitch scheduling and communications, and it treats audit trails and permission boundaries as first-class citizens.
Membership & subscriptions
- Tiered membership engine - PPS Standard, Junior, Hundreds Club and affiliated club memberships, each with its own cycle, grace period and benefit rules.
- Club import wizard - multi-step CSV imports with profile-based field mapping, duplicate detection, household and guardian linking, and a 'declaration replaces declaration' rule for annual renewal lists.
- Payment reconciliation queue - ingests Stripe, GoCardless and FreeAgent bank feeds, then matches payments to members and memberships with a clear suggestion UI.
- Hundreds Club draw system - eligibility snapshots, a spinning-wheel draw, winner recording, public results page and backfill of historical winners.
- Membership card and bar discount - live QR lookup at the bar, showing coverage status, expiry, grace period and whether the cardholder is currently eligible for discount.
- Renewal tracking - automatic status updates, grace-period handling and subscription migration tools.
Scheduling & pitch operations
- In-season club approval policy - out-of-season clubs or social requests are routed to the club whose season is active; the in-season club approves, declines with reason, or the system auto-decides.
- Cricket-season football guard - football events in the cricket window are auto-rejected if a cricket fixture already exists; otherwise they go to the cricket fixture secretary.
- Cricket-net training auto-approval - cricket training in cricket nets is approved automatically within the cricket season.
- Play-Cricket fixture sync - pulls fixtures from Play-Cricket, defaults missing ground and time data for home matches instead of silently skipping them, and flags fixtures needing human confirmation.
- Recurring events and pitch closures - support for repeating fixtures and one-off closures.
Events, communications & engagement
- Public and private event types - 'Private' events stay on the internal calendar but never appear on the public website.
- Event approval workflow - new events can be submitted for approval and routed to the right club secretary based on the scheduling policy.
- Campaigns hub - draft campaigns from events or draw results, schedule them, and prepare them for social media publishing (currently in mock mode, ready for Meta API connection).
- AI draft composition - generate weekly 'What's On', match-day reminders and renewal nudges from live event data.
- Public website pages - homepage, What's On, Clubs & Groups, Classes, Hire, Lawn Games, Membership, and a published Hundreds Club winners history.
Financial integrity & audit
- Audit-first design - every important admin action (event changes, imports, sanctions, group settings, payments) writes to an immutable audit log.
- Provider identity linking - stable links between Stripe and GoCardless customers and club members so reconciliation survives email changes.
- Split-payment logic - parent payment events can be divided into reconcileable child events.
- Gross-payment principle - eligibility is based on gross amounts before gateway fees.
- Admin dashboards - finance, renewal, F&B and operational dashboards with focused, actionable views.
Governance & security
- Role-based access model - pps_admin, club_admin, fixture_secretary, read_only_admin, member and instructor roles, with additive permissions (read-only does not override existing write access).
- Row-level security on every table - public data, club-scoped data and admin-only data are protected at the database level.
- Security findings workflow - public data exposure and policy overreach are remediated and tracked.
- Notification approval mode - sensitive notifications require admin approval before send; stale notifications are auto-invalidated if the member renews.
Integrations
- Supabase (Lovable Cloud) - auth, database and serverless functions.
- Stripe and GoCardless - subscriptions, payments and webhooks as the billing system of record.
- FreeAgent - bank feed import and payment matching.
- Play-Cricket - fixture sync.
- Email - transactional email via the club's domain (membership and password resets, broadcasts, winner notifications).