Logo Lanfrica

its-muchiri/givetoafrica

Domaine:

socioeconomic

Type de record:

softwareproject
Créateur:
its
Hôte:
this is for give to africa # GiveToAfrica - Donation Platform A production-grade, scalable donation platform for a nonprofit organization raising funds to support communities across Africa. ## Tech Stack - **Frontend:** React 18 + TypeScript + Vite + Tailwind CSS - **Backend:** Node.js + Express + Prisma ORM - **Database:** PostgreSQL - **Payments:** Stripe (international) + Flutterwave (Africa) + Paystack (Nigeria) - **Email:** Resend - **Deployment:** Docker + CI/CD via GitHub Actions ## Getting Started ### Prerequisites - Node.js 20+ - PostgreSQL 16+ - npm or yarn ### Setup 1. Clone and install dependencies: ```bash git clone cd givetoafrica npm install ``` 2. Copy environment variables: ```bash cp .env.example .env ``` Fill in your API keys from: - Stripe Dashboard - Flutterwave Dashboard - Paystack Dashboard - Resend 3. Set up the database: ```bash npx prisma generate npx prisma db push ``` 4. Start development servers: ```bash npm run dev:all ``` - Frontend: localhost - API: localhost ### Docker ```bash docker-compose up ``` ## Project Structure ``` ├── src/ # Frontend React app │ ├── components/ # Shared components (Layout, Navbar, Footer, CookieConsent) │ ├── pages/ # Page components │ │ ├── HomePage.tsx # Landing page with CTAs │ │ ├── DonatePage.tsx # Core donation flow │ │ ├── CausesPage.tsx # Program listings │ │ └── ... │ └── lib/ # Utilities, constants, helpers ├── server/ # Backend Express API │ ├── index.ts # Entry point │ ├── routes/ # API route handlers │ │ ├── donations.ts # Donation creation │ │ ├── webhooks-*.ts # Payment provider webhooks │ │ ├── auth.ts # Magic link authentication │ │ ├── admin.ts # Admin dashboard API │ │ └── donor-portal.ts # Donor portal API │ └── lib/ # Server utilities │ ├── stripe.ts # Stripe client │ ├── flutter …