The Themabinti Services Hub Laravel API is the robust, scalable backend powering an inclusive beauty, health, and lifestyle services marketplace for Kenya.
# **Themabinti Services Hub - Laravel API**
## **Project Overview**
The Themabinti Services Hub Laravel API is the robust, scalable backend powering an inclusive beauty, health, and lifestyle services marketplace for Kenya. It facilitates connections between service providers (sellers) and customers, offering tiered seller packages, secure M-Pesa payment integration, comprehensive service management, and an extensive admin management system.
This backend is designed as a RESTful API, providing endpoints for authentication, user and service management, appointments, payments, admin oversight, and more, all while adhering to modern Laravel best practices.
**Fully commented code with clear explanation of why and what. With steps on crucial logic and key points**
## **Features**
* **User Management:**
* Flexible user roles: `customer`, `seller`, `admin`.
* Secure registration, login, and logout with Laravel Sanctum API tokens.
* Email verification for account activation.
* Profile management: update personal details, upload profile image.
* Admin controls to activate/deactivate, soft delete, restore, or permanently delete user accounts.
* **Seller Packages & Monetization:**
* Tiered seller packages (`basic`, `standard`, `premium`) with varying service and media upload limits.
* M-Pesa STK Push integration for package payments (registration, upgrade, renewal).
* Robust payment status polling to ensure account activation/upgrades only occur upon verified payment.
* Dynamic package pricing, configurable by administrators.
* **Service Management:**
* CRUD operations for services by authenticated sellers (within package limits).
* Media file uploads (images, videos) per service.
* Public listing with category, location, price, and keyword filtering.
* Admin moderation of all services (activate/deactivate).
* **Appointment System:**
* Real-time booking of services by customers.
* Appointment status management (`pending`, `confirmed` …