Africa Sojourners of Hope

Web Platform — Technical Project Report

Version 1.0  |  June 2026
https://www.africasojournersofhope.org

1. Executive Summary

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.

2. Technology Stack

LayerTechnologyPurpose
FrontendNext.js 16, React 19, Tailwind CSS v4Server and client rendering, routing, UI
BackendNext.js API Routes (Node.js)REST endpoints, webhooks, form handling
DatabaseSupabase PostgreSQLData storage with Row Level Security
AuthSupabase AuthAdmin login and session management
PaymentsPaystackCard, M-Pesa, bank transfer donations
EmailSMTP (Nodemailer)Receipts, confirmations, admin alerts
StorageSupabase StorageApplication document uploads
HostingVercelCDN, SSL, serverless deployment
AnalyticsCustom page views + Vercel AnalyticsVisitor footprint tracking

3. Project Structure

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

4. Database Tables

TablePurpose
admin_usersAdmin accounts (admin / super_admin roles)
donationsPaystack donations with status tracking
programme_applicationsEducation programme applications
volunteer_applicationsVolunteer interest forms
sponsorship_requestsCorporate and individual sponsorship
case_assessmentsCase assessment intake and workflow
contact_messagesContact form submissions
blog_postsCMS blog content
scoring_criteria / application_scoresWeighted applicant scoring
site_page_viewsVisitor footprint analytics
newsletter_subscribersEmail newsletter list
audit_logsAdmin action audit trail

5. Payment Integration

Callback URL: https://www.africasojournersofhope.org/donate/callback

Webhook URL: https://www.africasojournersofhope.org/api/paystack/webhook

  1. Donor submits form → POST /api/paystack/initialize
  2. Paystack popup completes payment
  3. GET /api/paystack/verify confirms and updates donations table
  4. Webhook provides async backup confirmation
  5. Admin views donation at /admin/donations (super_admin)

6. Email Routing

EventRecipient
Application submittedApplicant confirmation + ADMIN_EMAIL alert
Donation completedDonor receipt + admin (+ optional donations/treasurer CC)
Contact formSender auto-reply + admin notification
Case status updateReferrer email
Application decisionApplicant status email

7. Admin Dashboard

8. Security

9. SEO

10. Deployment

  1. Run supabase/PRODUCTION.sql in Supabase SQL Editor
  2. Set environment variables on Vercel
  3. Configure Paystack callback and webhook URLs
  4. Deploy: npm run build && vercel deploy --prod
  5. Submit sitemap in Google Search Console

Africa Sojourners of Hope  |  info@africasojournersofhope.org