A platform connecting customers with formal businesses and informal service providers across South Africa and Zimbabwe. Users can book services and choose whether to visit a provider or request a provider to come to them
# β‘ Carl Service Marketplace
> A location-based service booking platform for **Zimbabwe πΏπΌ** and **South Africa πΏπ¦**
> Connect customers with trusted electricians, plumbers, mechanics, and more.
---
## π Table of Contents
1. Prerequisites
2. Project Structure
3. Local Development Setup
4. Admin Credentials
5. How the Platform Works
6. Running the Application
7. API Overview
8. Deployment Guide
9. Troubleshooting
---
## β
Prerequisites
Before you begin, ensure you have the following installed:
| Tool | Version | Download |
|---|---|---|
| **Node.js** | v18+ (LTS recommended) |
nodejs.org |
| **npm** | v9+ (comes with Node.js) | β |
| **Git** | Any recent version |
git-scm.com |
Check your versions:
```bash
node --version # should show v18.x.x or higher
npm --version # should show 9.x.x or higher
```
---
## π Project Structure
```
carl-service-marketplace/
βββ backend/ # Express.js API server
β βββ db/
β β βββ database.js # SQLite setup, schema, seed data
β βββ middleware/
β β βββ auth.js # JWT authentication middleware
β βββ routes/
β β βββ auth.js # Register, login, profile
β β βββ providers.js # Provider registration, listing, dashboard
β β βββ bookings.js # Booking creation, status, reviews
β β βββ admin.js # Admin control panel API
β βββ uploads/ # Uploaded provider documents (auto-created)
β βββ .env # Environment variables
β βββ server.js # Main Express server
β βββ package.json
β βββ carlservices.db # SQLite database (auto-created on first run)
β
βββ frontend/ # React.js application
β βββ public/
β β βββ index.html
β βββ src/
β β βββ api/
β β β βββ axios.js # Axios instance with auth interceptor
β β βββ components/
β β β βββ Navbar.js
β β β βββ Footer.js
β β β βββ ProviderCard.js
β β β β¦