Logo Lanfrica

officialkatumba/services-marketplace

Domaine:

digital infrastructure

Type de record:

software
Créateur:
off
Hôte:
first free services marketplace in Zambia # Services Marketplace A full-stack MVP for booking trusted local services. It includes multi-role authentication, worker listings, geospatial search, bookings, two-way reviews, moderation, real-time chat, reporting, appeals, recommendations, admin tools, and seed data. Monetization features are intentionally excluded for Phase 2. ## Prerequisites - Node.js 22+ - npm - Docker and Docker Compose - MongoDB Atlas account or local MongoDB via Docker - Plivo account for production SMS - SMTP account for production email ## Installation ```bash npm install cp .env.example .env npm run docker:up npm run seed npm run dev ``` Client: localhost Server API: localhost ## Environment Variables - `MONGODB_URI`: MongoDB Atlas or local connection string - `SESSION_SECRET`: Express session secret - `SMS_PROVIDER`: `plivo` - `PLIVO_AUTH_ID`, `PLIVO_AUTH_TOKEN`, `PLIVO_PHONE_NUMBER`: SMS credentials - `EMAIL_HOST`, `EMAIL_PORT`, `EMAIL_USER`, `EMAIL_PASS`, `EMAIL_FROM`: SMTP settings - `CLIENT_URL`: frontend origin - `SERVER_URL`: backend URL - `PORT`: API port When SMS or email credentials are missing, the services log mock notifications to the server console. ## Default Test Credentials All seed users use password `Password123!`. - `client1@example.com` - `client2@example.com` - `plumber@example.com` - `electrician@example.com` - `hairdresser@example.com` - `admin@example.com` - `superadmin@example.com` ## API Summary - `POST /api/auth/register`, `POST /api/auth/login`, `POST /api/auth/logout` - `POST /api/auth/initiate-password-reset` - `POST /api/auth/verify-security-and-send-otp` - `POST /api/auth/reset-password` - `GET/PUT /api/users/profile`, `PUT /api/users/location` - `GET /api/workers`, `GET /api/workers/nearby`, `GET /api/workers/:id` - `POST/PUT/DELETE /api/workers/services` - `POST /api/bookings`, `GET /api/bookings`, booking status actions - `POST /api/reviews`, moderation, replies, flags - `GET /api/messages/booking/:bookingId`, con …