# FundAfrica - Crowdfunding Platform for African Communities
A modern, secure, and scalable crowdfunding platform built with Next.js, Supabase, and TypeScript, specifically designed for African communities.
## 🌟 Features
### Core Functionality
- **Campaign Management**: Create, edit, and manage fundraising campaigns
- **User Authentication**: Secure signup/login with email verification
- **Payment Processing**: Integrated Paystack payment gateway with multiple payment methods
- **File Upload**: Secure image upload for campaigns and profiles
- **Real-time Updates**: Campaign progress tracking and updates
- **Comments System**: Community engagement with nested comments
- **Search & Filtering**: Find campaigns by category, status, and keywords
### Security Features
- **Row Level Security (RLS)**: Database-level security policies
- **Rate Limiting**: API endpoint protection against abuse
- **CSRF Protection**: Cross-site request forgery prevention
- **Input Validation**: Comprehensive data validation and sanitization
- **File Upload Security**: Secure file handling with type validation
### Payment Integration
- **Paystack Integration**: Card payments, USSD, and mobile wallets
- **Multiple Payment Methods**: Support for various African payment options
- **Transaction Tracking**: Complete donation history and status tracking
- **Webhook Handling**: Secure payment verification and status updates
## 🚀 Quick Start
### Prerequisites
- Node.js 18+
- pnpm (recommended) or npm
- Supabase account
- Paystack account (for payments)
### Installation
1. **Clone the repository**
```bash
git clone
cd crowdfund-africa
```
2. **Install dependencies**
```bash
pnpm install
```
3. **Set up environment variables**
```bash
cp .env.example .env.local
```
Fill in your environment variables:
```bash
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# Paymen …