A multi-vendor e-commerce marketplace for Africa
# SmartMart
A full-featured multi-vendor e-commerce marketplace built with Next.js, Supabase, and Cloudinary. SmartMart supports multiple payment gateways, vendor stores, live chat, loyalty programs, referrals, and more.
---
## Table of Contents
- Tech Stack
- Quick Start
- Project Structure
- Database Schema Overview
- Features
- Documentation
- Testing
- CI/CD
- License
- Contact
---
## Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 (App Router), React 18, TypeScript |
| Styling | Tailwind CSS |
| Database | Supabase (PostgreSQL) |
| Authentication | Supabase Auth |
| Edge Functions | Supabase Edge Functions (Deno) |
| File Storage | Cloudinary |
| Email Service | Resend |
| Payments | Paystack, Stripe, Flutterwave, Hubtel |
| Deployment | Vercel (frontend), Supabase (database + functions) |
| CI/CD | GitHub Actions |
| Testing | Jest |
---
## Quick Start
### Prerequisites
- Node.js 18+
- npm 9+
- A Supabase project
- A Cloudinary account
- A Resend account
### Installation
```bash
# Clone the repository
git clone
github.com
cd smartmart
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Fill in your environment variables in .env.local
# (See the Environment Setup section in the deployment guide)
# Run database migrations
npx supabase db push
# Start the development server
npm run dev
```
Open
localhost to view the app.
---
## Project Structure
```
smartmart/
├── app/ # Next.js App Router pages
│ ├── admin/
│ │ └── settings/
│ │ └── page.tsx # Admin settings (6 tabs)
│ ├── api/
│ │ └── health/
│ │ └── route.ts # Health check endpoint
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── lib/ # Shared libraries
│ ├── contact.ts # Contact info constants
│ ├── cloudinary.ts …