Web Platform — Technical Project Report
The ASOH platform is a production MVP for a Kenyan NGO. It provides public donation processing (Paystack), multi-step application forms, a secure admin dashboard, blog CMS, visitor analytics, and automated email notifications.
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 16, React 19, Tailwind CSS v4 | Server and client rendering, routing, UI |
| Backend | Next.js API Routes (Node.js) | REST endpoints, webhooks, form handling |
| Database | Supabase PostgreSQL | Data storage with Row Level Security |
| Auth | Supabase Auth | Admin login and session management |
| Payments | Paystack | Card, M-Pesa, bank transfer donations |
| SMTP (Nodemailer) | Receipts, confirmations, admin alerts | |
| Storage | Supabase Storage | Application document uploads |
| Hosting | Vercel | CDN, SSL, serverless deployment |
| Analytics | Custom page views + Vercel Analytics | Visitor footprint tracking |
app/ admin/(dashboard)/ Admin pages (donations, cases, blog, etc.) api/ Public and admin API routes apply/ Programme, volunteer, sponsor, case forms blog/ Public blog (CMS-driven) donate/ Paystack donation flow components/admin/ Dashboard tables, panels, scoring lib/supabase/ Database clients (anon + service role) lib/services/ Email, Paystack checkout supabase/PRODUCTION.sql Single production database script
| Table | Purpose |
|---|---|
| admin_users | Admin accounts (admin / super_admin roles) |
| donations | Paystack donations with status tracking |
| programme_applications | Education programme applications |
| volunteer_applications | Volunteer interest forms |
| sponsorship_requests | Corporate and individual sponsorship |
| case_assessments | Case assessment intake and workflow |
| contact_messages | Contact form submissions |
| blog_posts | CMS blog content |
| scoring_criteria / application_scores | Weighted applicant scoring |
| site_page_views | Visitor footprint analytics |
| newsletter_subscribers | Email newsletter list |
| audit_logs | Admin action audit trail |
Callback URL: https://www.africasojournersofhope.org/donate/callback
Webhook URL: https://www.africasojournersofhope.org/api/paystack/webhook
| Event | Recipient |
|---|---|
| Application submitted | Applicant confirmation + ADMIN_EMAIL alert |
| Donation completed | Donor receipt + admin (+ optional donations/treasurer CC) |
| Contact form | Sender auto-reply + admin notification |
| Case status update | Referrer email |
| Application decision | Applicant status email |
npm run build && vercel deploy --prod