ZedFlip - Zambia's #1 Second-Hand Marketplace. Buy and sell in Lusaka, Kitwe, Ndola and across Zambia.
# ZedFlip - Zambia's Second-Hand Marketplace
A modern, full-stack marketplace application for buying and selling second-hand items in Zambia.
## 🚀 Features
- **User Authentication** - Register/Login with email and Zambian phone number (+260)
- **Listings Management** - Create, edit, and manage product listings
- **Real-time Chat** - Socket.io powered messaging between buyers and sellers
- **Image Upload** - Cloudinary integration for image storage
- **Search & Filters** - Filter by category, city, price, condition
- **Admin Panel** - Manage users, listings, categories, and reports
- **PWA Support** - Installable progressive web app
- **Zambia-Specific** - ZMW currency, Zambian cities, +260 phone format
## 🎨 Design System
| Color | Hex | Usage |
|-------|-----|-------|
| Primary (Orange) | `#E85D04` | CTAs, highlights |
| Secondary (Green) | `#2D6A4F` | Success, secondary actions |
| Accent (Red) | `#D00000` | Alerts, errors |
| Background | `#F8F9FA` | Page background |
| Surface | `#FFFFFF` | Cards, modals |
## 🛠️ Tech Stack
### Backend
- Node.js + Express
- TypeScript
- MongoDB + Mongoose
- Socket.io
- JWT Authentication
- Cloudinary
### Frontend
- React 18
- TypeScript
- Vite
- TailwindCSS
- Zustand (State Management)
- React Query
- Socket.io Client
## 📁 Project Structure
```
zedflip/
├── backend/
│ ├── src/
│ │ ├── config/ # Database, Cloudinary, Socket config
│ │ ├── controllers/ # Route handlers
│ │ ├── middleware/ # Auth, admin, error handling
│ │ ├── models/ # Mongoose schemas
│ │ ├── routes/ # API routes
│ │ ├── utils/ # JWT, SMS, Logger
│ │ └── server.ts # Entry point
│ ├── package.json
│ └── tsconfig.json
│
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Route pages
│ │ ├── hooks/ # Custom React hooks
│ │ ├── store/ # Zustand stores
│ │ ├── lib/ # API client, uti …