A modern, responsive website for Blessings Global Outreach — a Christian non-profit spreading the love of Jesus Christ through physical outreaches, spiritual empowerment (Praise & Prophesy), and community building (Blessings Movement).
- Next.js 14 (App Router)
- TypeScript
- Tailwind CSS
- Framer Motion (animations)
- Lucide React (icons)
- Primary: Deep royal purple (
#4A0E8F) - Accent: Gold (
#D4AF37) - Fonts: Inter (body), Playfair Display (headings)
- Mobile-first, premium non-profit aesthetic
- Home — Hero, stats, mission cards, testimonials carousel, upcoming events, email signup
- About — Vision, mission, story timeline, core values, leadership team
- Programs — Mission 1 (Medical & Welfare), Mission 2 (Praise & Prophesy), Mission 3 (Blessings Movement) with expandable cards and scripture
- Events — Featured event banner, filter by type (Outreach / Praise / Hangout / Bootcamp), event cards
- Get Involved — Volunteer form, partnership tiers (Bronze/Silver/Gold/Kingdom), prayer request form
- Donate — Impact statements, one-time/monthly toggle, amount selector, donor wall placeholder
- Contact — Contact form, social links (Instagram, Facebook, X, LinkedIn), prayer request note
- Sticky navbar (transparent on home hero, solid on scroll)
- Top announcement banner: "Next Outreach: March 2026 — Register Now"
- Floating Pray With Us button (opens prayer request modal)
- Scripture quote component with gold accent
- Animated stat counters on home
- Event cards with type badges and registration links
- Forms with basic validation (client-side placeholder submit)
npm install
npm run devOpen http://localhost:3000.
npm run build
npm start- Donations: Paystack integration, donor portal (login, giving history, receipts). See Phase 1 below.
- Volunteers & partners: Forms on Get Involved → APIs
/api/volunteer,/api/partner. Admin:/admin/volunteers,/admin/partners(approve/decline). - Events: Admin creates events at
/admin/events(capacity, type, publish). Public can register via/api/events/register. QR codes per registration; check-in at/admin/events/[id]/registrationsvia/api/admin/check-in. - Prayer: Submit via site or Pray With Us modal →
/api/prayer. Admin:/admin/prayer(status, follow-up). - Impact:
/admin/impact— funds raised, donors, prayers, volunteers, recent donations. - Content (CMS):
/admin/content— edit JSON blocks (home hero, stats, etc.). API:/api/admin/content/[key]. - Learning, media, comms: Schema and admin shells at
/admin/learn,/admin/media,/admin/comms. Extend with CRUD and UIs as needed.
Admin login: Run npm run db:seed (creates admin@blessingsglobal.org / admin123change-me). Then sign in at /portal/login and go to /admin. Change the password and set ADMIN_EMAIL / ADMIN_PASSWORD in production.
- Donate: Real Paystack integration. Set
PAYSTACK_SECRET_KEY(and optionallyPAYSTACK_PUBLIC_KEY,PAYSTACK_WEBHOOK_SECRET) in.env. Without a key, the donate flow returns a mock success URL for testing. - Donor portal:
/portal— sign in (or register at/portal/register), view giving history and download receipts at/portal/dashboardand/portal/receipt/[reference]. - Database: SQLite by default (
DATABASE_URL="file:./dev.db"). Runnpm run db:pushafter cloning. For production, use PostgreSQL and setDATABASE_URLaccordingly. - Auth: NextAuth.js with credentials (email + password). Set
NEXTAUTH_SECRETin production.
Copy .env.example to .env. Required for Phase 1:
DATABASE_URL— e.g.file:./dev.db(SQLite) or Postgres URL.NEXTAUTH_URL— e.g.http://localhost:3000.NEXTAUTH_SECRET— any random string (useopenssl rand -base64 32in production).PAYSTACK_SECRET_KEY— from Paystack Dashboard (optional for dev; mock flow used if missing).
Optional: NEXT_PUBLIC_SITE_URL for Open Graph; PAYSTACK_WEBHOOK_SECRET for webhook signature verification.
- Events, testimonies, team members, and missions are in
src/data/. Edit those files to update content without touching components. - Replace Unsplash image URLs with your own assets when ready.
- Donate flow includes a placeholder button; integrate Paystack, Flutterwave, or another provider when needed.