# The USA — Uganda Scouts Association App
A membership registration, subscription, and fee-tracking web app for the
Uganda Scouts Association. Built as an installable PWA (works offline for
browsing, syncs when back online) with React + Tailwind on the frontend and
Supabase (Postgres + Auth) as the backend.
Payment collection uses **Option B — Manual Verification**: members report
their payment (amount, reference number, date), and an admin cross-checks it
against the real Stanbic Bank / Mobile Money statement before marking it
"Verified." Once verified, both the admin and the member can download a
printable PDF receipt.
---
## 1. What's included
- Member self-service portal: passwordless login (name + email + one-time
code), auto-generated member ID (e.g. `JIN-2026-002`), edit own info,
report payments, download receipts, submit district reference data
(schools, commissioners, trainers, leaders, donors, etc.)
- Admin portal: overview stats, full members table (search/filter/export
CSV), payment verification queue, and a management view for every
reference data module — each downloadable as CSV.
- Row-level security in the database so members can only ever see and edit
their own records, and only admins can see everything — enforced at the
database level, not just hidden in the UI.
## 2. One-time setup (you only do this once)
### a) Create a free Supabase project
1. Go to
supabase.com and create a free account + new project.
2. Wait for it to finish provisioning (~2 minutes).
### b) Load the database schema
1. In your Supabase project, open the **SQL Editor**.
2. Open `supabase/schema.sql` from this project, copy all of it, paste it
into the SQL Editor, and click **Run**.
3. This creates every table, security rule, and the auto member-ID logic.
### c) Connect the app to your Supabase project
1. In Supabase, go to **Project Settings → API**.
2. Copy the **Project URL** and the **anon public key**.
3. In this project, copy `.env.example` to a new file …