medium complexity extracted Referral Program Confidence: 100%
5
Components
39
Shared
0
User Stories
Yes
Analyzed

Description

This feature enables peer mentors and coordinators to generate personalized invite links and QR codes that can be shared with potential new peer mentors or member organizations. The sharing mechanism integrates with the device's native share sheet, allowing distribution via SMS, email, social media, or any installed app. Each generated link is tied to the referring user's account so that successful sign-ups are tracked back to the originator automatically.

Analysis

Business Value

Organic recruitment through existing peer mentors is one of the most cost-effective growth channels for volunteer networks. A frictionless invite flow removes the manual coordination currently required when a peer mentor wants to bring in a colleague, reducing drop-off between intention and completed registration. For the platform, every successful referral expands the active volunteer base without additional outreach cost, directly supporting Bufdir reporting metrics around volunteer hours. The QR code format also supports in-person recruitment at events or training sessions, extending the reach beyond digital channels and making the referral act immediate rather than deferred.

Implementation Notes

The invite link service generates short, signed URLs with an expiry window and a referrer token embedded as a query parameter. On the backend the link resolves to the standard onboarding flow with the referrer token preserved through registration completion. QR code generation runs client-side in Flutter using a well-maintained package (e.g. qr_flutter) so no server round-trip is needed for rendering. The native share sheet is triggered via the share_plus package. Deep link routing must handle both cold-start and warm-start scenarios using Flutter's router so the referrer token survives app installation on iOS and Android. Referrals table stores referrer_user_id, invitee_user_id (nullable until sign-up completes), token, created_at, and redeemed_at.

Components (44)

User Interface (2)

Service Layer (2)

Data Layer (1)

Shared Components

These components are reused across multiple features

User Stories

No user stories have been generated for this feature yet.