Logo Lanfrica

StevenSsemambo/uganda-scouts-app

Domain:

digital infrastructure

Record type:

software
Creator:
Ste
Host:
# 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 …