# π Maasai Heritage Market
Kenya's premier cultural marketplace for authentic Maasai art, jewelry, textiles, and crafts. Built with Next.js 14, Supabase, and M-Pesa.
## β¨ Features
- **Live Auctions** β 6β24 hour timed auctions with real-time bidding via Supabase Realtime
- **Fixed-Price Shop** β Buy authentic Maasai items instantly
- **M-Pesa Payments** β Safaricom Daraja STK Push integration
- **Seller Verification** β National ID + KRA PIN document upload and admin review
- **SMS Notifications** β Bid alerts, order confirmations via Africa's Talking
- **PWA Ready** β Service Worker + Web App Manifest for mobile-first experience
- **Dark Mode** β Full dark/light theme support
- **Admin Dashboard** β Listing moderation and seller verification review
- **Cultural Stories** β Sellers share the heritage behind each piece
## π Tech Stack
| Layer | Technology |
|-------|-----------|
| Framework | Next.js 14 (App Router) |
| Database | Supabase (PostgreSQL) |
| Auth | Supabase Auth |
| Realtime | Supabase Realtime |
| Storage | Supabase Storage |
| Payments | M-Pesa Daraja API |
| SMS | Africa's Talking |
| Styling | Tailwind CSS |
| Forms | React Hook Form + Zod |
| Hosting | Vercel |
## π Prerequisites
- Node.js 18+
- A Supabase account (free tier works)
- A Safaricom Developer account for M-Pesa
- An Africa's Talking account for SMS
## π οΈ Setup
### 1. Clone and install
```bash
git clone
cd maasai-heritage-market
npm install
```
### 2. Configure environment variables
```bash
cp .env.example .env.local
```
Fill in your `.env.local`:
```env
# Supabase
NEXT_PUBLIC_SUPABASE_URL=
your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# M-Pesa (Daraja API)
MPESA_CONSUMER_KEY=your-consumer-key
MPESA_CONSUMER_SECRET=your-consumer-secret
MPESA_SHORTCODE=174379
MPESA_PASSKEY=your-lipa-na-mpesa-passkey
MPESA_CALLBACK_URL=
your-domain.vercel.app
MPESA_ENVIRONMENT=sandbox # β¦