SwiftCause Project Portal

Last updated: 18 April 2026 (Saturday) • 21 days to GTM launch (9 May) • Sprint 04, Day 21

Today's Headline: Gift Aid Hardening Shipped — P0 #597 Closed, Bug #650 Closed, Permissions PR #661 In Review

7 PRs merged 15 Apr (#653, #654, #655, #656, #659, #651, #660) cleared the server-side export suite, hardened Gift Aid validation (bug #650), closed P0 #597 (campaign 100% funding goal) and aligned export filters. 3 PRs currently open: #661 (dedicated export permissions, Yuvraj, awaiting review from dp-singh/Jitesh/prsrwt), #668 (tokenHash as doc ID for O(1) magic link lookup, prsrwt, last updated 16 Apr 17:56) and #652 (Jitesh's Android tap-to-pay APK). 8 new Gift Aid UX / backend issues (#662–#667) were raised 16 Apr and are all assigned to the team — Magic Link v2 uplift. The Apr-12 strategy backlog (#629–#641, #646–#647) is still unassigned — 15 strategy issues waiting for prioritisation. Sprint 04 tasks #611/#612 unassigned at Day 21. Repo: YNVSolutions/SwiftCause_Mono. 21 days to GTM.

Days to GTM
21
Launch: 9 May 2026
Open Issues (top page)
30+
Top 30 by recent update
Unassigned Strategy
15
#629–#641, #646, #647
Open PRs
3
#661, #668, #652
PRs Merged (Apr)
12+
last: #660 (15 Apr 15:34)
P0 Open
1
#629 GO-LIVE CRITICAL
Sprint 04 Tasks
2/4 visible
#609, #610 assigned; #611/#612 unknown
HTML Assets
26
Active files (Vercel-ready)

Jitesh APK Build — 12 April 2026

Donation Flow Walkthrough (32-second recording)

Latest Android PR — In Review #652 (still open, updated 16 Apr)

Open by Jitesh — awaiting review
PR #652 — Android setup: complete payment flow for initial internal testing
Adds ThankYouScreen after successful Tap-to-Pay; auto-routes to Tap-to-Pay on NFC-capable devices; pulls magic-link token at payment completion; adds MAGIC_LINK_BASE_URL build config; brings in zxing for QR rendering. Lays groundwork for QR-based magic links in the Android app — directly aligned with go-live flow. PR has been open since 14 Apr — needs review decision.

Flow Steps Observed

1
Campaign List (Home Screen)
SwiftCause logo + 4 campaigns visible: "Threads of Hope: Clothing Children in Need" (2%), "Educate a Girl, Empower a Future" (2%), "Feed the devs" (6%), "Feed 100 Children This Winter" (0%). Each has image, description, and progress bar.
2
Campaign Detail → Amount Selection
Tapped "Threads of Hope". Shows campaign hero image, preset amounts (£25, £50, £100), custom amount field, and "Make this recurring" toggle. Clean layout, proper £ formatting.
3
Processing Payment Modal
After selecting £25, a modal overlay appears: spinning loader with "Processing Payment — Please wait..." text. Properly overlays the donation screen behind.
4
Stripe Payment Simulation
Shows "PRESS HERE TO SIMULATE PAYMENT" button with "Total: £25.00" at bottom. This is the test/sandbox Stripe flow — no real payment taken.
5
Processing Your Payment (Full Screen)
Full-screen loading state: small green spinner + "Processing your payment — Please wait..." Transitions smoothly from Stripe simulation.
6
Payment Complete → QR Code for Gift Aid
Green tick + "Payment complete — Thank you for your donation". Large QR code displayed with text "Scan this QR code with your phone to complete your Gift Aid declaration." Auto-return countdown (29s → 19s observed). Button: "I've scanned the QR".
7
Return to Campaign List
After countdown or button tap, returns cleanly to the campaign list home screen. Full loop complete.

Findings

Working Well
End-to-end donation flow completes successfully. Campaign listing, amount selection, Stripe integration, payment processing states, QR code generation, and auto-return all functional.
Working Well
Gift Aid QR code flow matches the magic link architecture (PR #622). Post-donation QR → donor's phone → Gift Aid declaration. This is the core go-live flow.
Working Well
UI is clean and on-brand — dark green buttons, SwiftCause logo, proper £ currency formatting, progress bars on campaigns.
RESOLVED — PR #659 Merged 15 Apr 14:52
Bug #650 (donations tagged Gift Aid without explicit consent) is now fixed and merged. PR #659 by Paras adds strict server-side validation so declarations are only created on explicit consent. Reviewed by Jitesh + Yuvraj. HMRC false-claim risk closed.
RESOLVED — P0 #597 Closed via PR #651
P0 "Campaign should not auto-stop at 100%" (fix in PR #651) merged 15 Apr 15:17. Campaigns can now exceed funding goal and continue accepting donations. Blocker cleared.
Note
"Feed the devs" campaign is a test/joke entry — needs removing before any customer demos or go-live. Placeholder content like this will undermine credibility.
Note
Payment simulation screen ("PRESS HERE TO SIMULATE PAYMENT") is test mode only. Need to verify Stripe live key toggle is ready for production switch.
UX Note → Issue #627 Still Open
The auto-return countdown (29s) is too long. Issue #627 raised for a configurable post-donation redirect timer: org-level default (15s) with per-campaign override. Still unassigned — sits in the strategy backlog awaiting prioritisation.

Magic Link v2 Uplift (16 Apr)

NEW — 8 Issues Raised 16 Apr Morning
Team raised a cluster of Magic Link v2 improvements all assigned within the dev team:
#662 Backend Magic Link Token Storage • #663 Backend completeGiftAidFlow Function • #664 Frontend Gift Aid Page • #665 Frontend Form Components • #666 Frontend Result Page with QR Code Prominence • #667 Frontend Thank You Page • #668 (PR) refactor: tokenHash as doc ID for O(1) lookup.
This is a coordinated sprint on the post-donation Gift Aid flow. PR #668 is open and awaiting review (last updated 16 Apr 17:56).

Action Required

Qamar Decisions — Pick Up This Week
1. Strategy backlog (#629–#641, #646, #647): 15 unassigned issues from 12-13 Apr. Pick at least 3 for this sprint; defer rest to post-launch. #629 (GO-LIVE CRITICAL: Location entity with Local Authority tagging for GASDS) must be triaged.
2. Sprint 04 tail (#611, #612): Still unassigned at Day 20. Decision: assign to idle dev, or descope before GTM?
3. Review PR #661 and PR #668: Both sitting open awaiting reviewers. PR #668 is a Magic Link performance optimisation — worth expediting.

Dashboards 2

Daily Briefings & Reports 2

Latest active daily snapshots.

Battlecards & Sales Collateral 13

User Flows & Magic Link 2

All architecture files have been archived to maintain clean, active project assets. Related information is available in Daily Briefings and Board Reviews.

Board Reviews & PM Decisions 2

GitHub Live — YNVSolutions/SwiftCause_Mono

Fetched live at portal refresh. Links open on GitHub.

Recent Commits (last 15)

d191940
Merge PR #660 — donation export respects admin filters
prsrwt/web-flow
15 Apr 15:34
6c06ea6
fix(donations-export): include admin filters in export request
Yuvraj
15 Apr 15:32
f5bb49e
feat(donations-export): send active admin filters
Yuvraj
15 Apr 15:29
79d1f2a
Merge PR #651 — campaigns can exceed 100% funding
prsrwt/web-flow
15 Apr 15:17
11b3ea0
Resolve merge conflict in CampaignManagement.tsx
prsrwt
15 Apr 15:10
eaac6ce
Merge PR #659 — Gift Aid validation hardening
prsrwt/web-flow
15 Apr 14:52
845b467
Merge PR #656 — operator Gift Aid export permission
Yuvraj/web-flow
15 Apr 14:47
51c790c
Merge PR #655 — subscription export server-side
Yuvraj/web-flow
15 Apr 07:06
3fe2b27
resolve merge conflicts
Yuvraj
15 Apr 07:04
cc6c33d
Merge PR #654 — kiosks export server-side
Yuvraj/web-flow
15 Apr 07:01
b2607e0
merge conflict resolved (kiosks export)
Yuvraj
15 Apr 06:59
2729281
Merge PR #653 — campaign export server-side
Yuvraj/web-flow
15 Apr 06:53
82ef54b
fix(subscription-export): apply admin filters server-side
Yuvraj
14 Apr 19:25
c6d5856
fix(admin-subscriptions): send active filters in export
Yuvraj
14 Apr 19:24
ce4dde9
feat(subscription-export): extend request contract with filters
Yuvraj
14 Apr 19:24

Open Pull Requests (3)

#TitleAuthorOpenedLast UpdateStatus
#668 refactor: use tokenHash as document ID for O(1) magic link lookup prsrwt 16 Apr 08:16 16 Apr 17:56 Review
#661 Add dedicated export permissions (subscriptions, campaigns, kiosks) — closes #657 yuvraj-shishodia 15 Apr 17:45 17 Apr 07:40 Review
#652 Android: complete payment flow for internal testing CodrJitesh 14 Apr 08:00 16 Apr 08:03 Review

Recently Merged PRs (last 10)

#TitleAuthorMerged
#660Fix donation export to respect admin filtersyuvraj-shishodia15 Apr 15:34
#651Fix: Allow campaigns to exceed 100% funding goal (closes P0 #597)prsrwt15 Apr 15:17
#659Harden Gift Aid Validation to Prevent Phantom Declarations (closes #650)prsrwt15 Apr 14:52
#656Grant operator default Gift Aid export-download permissionyuvraj-shishodia15 Apr 14:47
#655Move subscription export to server sideyuvraj-shishodia15 Apr 07:06
#654Move kiosks export to server sideyuvraj-shishodia15 Apr 07:01
#653Move campaign export to server sideyuvraj-shishodia15 Apr 06:53
#623Server-side donation exportyuvraj-shishodia10 Apr 15:19
#626Fix Gift Aid CSV Formula Injection + export flow docsyuvraj-shishodia10 Apr 15:20
#625Server-side donation export documentationyuvraj-shishodia10 Apr 15:19

Open Issues (top 30 by recent activity)

#TitleAssigneesUpdatedFlags
#668(PR) refactor: tokenHash as doc ID for O(1) magic link lookupprsrwt16 AprPR
#667[Frontend] Improve Thank You PageDev team16 AprNew
#666[Frontend] Enhance Result Page with QR Code ProminenceDev team16 AprNew
#665Frontend – Form ComponentsDev team16 AprNew
#664Frontend – Gift Aid PageDev team16 AprNew
#663Backend – completeGiftAidFlow FunctionDev team16 AprNew
#662[Backend] Update Magic Link Token StorageDev team16 AprNew
#661(PR) Add dedicated export permissions for non-viewer rolesyuvraj17 AprPR
#658Document implementation flow for Campaign/Kiosk/Subscription exportsyuvraj14 AprAssigned
#657Add export permissions (non-viewer roles)yuvraj14 AprAssigned Fix in PR #661
#652(PR) Android: complete payment flow for internal testingCodrJitesh16 AprPR
#649Revamp Magic Link Flow (Web Data Capture UX)Assigned13 AprAssigned
#648Add Organization Settings Screen (centralized org controls)Assigned14 AprAssigned
#647Micro-Transaction Shield: Donor Covers Fees (opt-in)Qamar13 AprUnassigned
#646Super Admin: Stripe billing rate managementQamar13 AprUnassigned
#641Super Admin panel: org pause/unpause + go-live gateQamar13 AprUnassigned
#640Stripe KYC gating + Organisation active/inactive stateQamar12 AprUnassigned
#639Activity Mode — member reference + PTA solverQamar12 AprUnassigned
#638Roaming volunteer mode — multi-deviceQamar12 AprUnassigned
#637Location-level Gift Aid conversion dashboardQamar12 AprUnassigned
#636Per-location capture flow config (A / B+ / Hybrid)Qamar12 AprUnassigned
#635SORP 2026 impact reporting data exportQamar12 AprUnassigned
#634CIC validation on charity onboarding — prevent Gift Aid for non-charitiesQamar12 AprUnassigned
#633Fee transparency disclosure (CoFP compliance)Qamar12 AprUnassigned
#632GASDS 10x matching calculator + Gap Alert dashboardQamar12 AprUnassigned
#631GASDS community building schedule auto-gen for HMRCQamar12 AprUnassigned
#630Two-Pile campaign compliance lock (Donation vs Activity)Qamar12 AprUnassigned
#629GO-LIVE CRITICAL: Location entity with Local Authority tagging (GASDS)Qamar12 AprUnassigned P0
#610[Sprint 04/C] Populate declarationIpAddress + captureMethodprsrwt13 AprSprint 04
#609[Sprint 04/B] Cloud Function trigger on ConsentEventsprsrwt13 AprSprint 04

Notes: Data from list_issues (state=open, sort=updated desc, per_page=30) and list_pull_requests (state=all, sort=updated). P0 flags inferred from title markers (GO-LIVE CRITICAL). GitHub labels on PM-created strategy issues are mostly absent. Sprint 04 tasks #611 / #612 did not appear in the top 30 by recent activity — status needs direct lookup.

All Files (A–Z) 26

Active HTML files in root and Baseline subfolder. Vercel-ready deployment.

File