# 🌍 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 # …