# pawandeep-kumar-bca/local-service-provider architecture

> Architecture diagram of the GitHub repository pawandeep-kumar-bca/local-service-provider, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pawandeep-kumar-bca/local-service-provider
- Repository: https://github.com/pawandeep-kumar-bca/local-service-provider

## Overview

This is a home-services marketplace with customer, provider, and administrator workflows. Customers discover providers, arrange and manage bookings, pay, and review completed work; providers manage services, availability, bookings, and earnings; administrators oversee marketplace operations. The frontend routes role-specific screens to backend APIs, whose controllers coordinate domain models and integrations. The tree and sampled files establish the major subsystems, but most controller and service implementations were not sampled, so uncertain internal call relationships are omitted.

Main entry points: [`frontend/src/routes/AppRoutes.jsx`](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/routes/AppRoutes.jsx) (Role-based screens), [`backend/src/controllers/review.controller.js`](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/review.controller.js) (Review workflows), [`backend/src/controllers/provider.controller.js`](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/provider.controller.js) (Provider workflows), [`backend/src/app.js`](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/app.js) (API application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web application"]
  node_web_routes["Role-based screens<br/>[AppRoutes.jsx]"]
  node_provider_pages["Provider workspace"]
  node_booking_pages["Booking screens"]
  node_customer_pages["Customer screens"]
  node_admin_pages["Admin console"]
  node_review_hook["Review queries<br/>[useReview.js]"]
  node_review_service["Review API client<br/>[reviewService.js]"]
end

subgraph group_api["API and domain"]
  node_api_app["API application<br/>[app.js]"]
  node_provider_routes["Provider endpoints<br/>[provider.routes.js]"]
  node_review_routes["Review endpoints<br/>[review.routes.js]"]
  node_provider_controller["Provider workflows"]
  node_review_controller["Review workflows"]
  node_booking_controller["Booking workflows"]
  node_payment_controller["Payment workflows"]
end

subgraph group_marketplace["Marketplace data"]
  node_provider_model[("Provider records<br/>[provider.model.js]")]
  node_category_model[("Service categories<br/>[category.model.js]")]
  node_booking_model[("Bookings<br/>[booking.model.js]")]
  node_review_model[("Reviews<br/>[review.model.js]")]
  node_payment_model[("Payments<br/>[payment.model.js]")]
  node_provider_utils["Provider search pipeline"]
end

subgraph group_operations["Provider operations"]
  node_schedule_pages["Schedule management"]
  node_earnings_pages["Earnings workspace"]
end

subgraph group_realtime["Realtime messaging"]
  node_chat_socket["Chat sockets<br/>[chat.socket.js]"]
  node_notification_socket["Notification sockets"]
  node_chat_controller["Chat workflows<br/>[chat.controller.js]"]
  node_notification_controller["Notification workflows"]
end

node_customer(("Customer"))
node_provider_actor(("Service provider"))
node_admin_actor(("Administrator"))
node_image_storage["ImageKit storage<br/>[imagekit.js]"]

node_customer -->|"uses"| node_web_routes
node_provider_actor -->|"uses"| node_web_routes
node_admin_actor -->|"uses"| node_web_routes
node_web_routes -->|"routes to"| node_customer_pages
node_web_routes -->|"routes to"| node_booking_pages
node_web_routes -->|"routes to"| node_provider_pages
node_web_routes -->|"routes to"| node_admin_pages
node_web_routes -->|"routes to"| node_schedule_pages
node_web_routes -->|"routes to"| node_earnings_pages
node_review_hook -->|"calls"| node_review_service
node_review_service -->|"requests"| node_api_app
node_api_app -->|"mounts"| node_provider_routes
node_api_app -->|"mounts"| node_review_routes
node_provider_routes -->|"dispatches"| node_provider_controller
node_review_routes -->|"dispatches"| node_review_controller
node_provider_controller -->|"queries"| node_provider_model
node_provider_controller -->|"queries"| node_category_model
node_provider_controller -->|"builds search"| node_provider_utils
node_review_controller -->|"queries"| node_review_model
node_review_controller -->|"checks booking"| node_booking_model
node_review_controller -->|"updates rating"| node_provider_model
node_review_controller -->|"updates rating"| node_category_model
node_review_controller -->|"uploads images"| node_image_storage
node_booking_controller -->|"manages bookings"| node_booking_model
node_payment_controller -->|"manages payments"| node_payment_model
node_chat_controller -->|"supports chat"| node_chat_socket
node_notification_controller -->|"supports notifications"| node_notification_socket

click node_web_routes "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/routes/AppRoutes.jsx"
click node_provider_pages "https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/provider"
click node_booking_pages "https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/BookingProviders"
click node_customer_pages "https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/user"
click node_admin_pages "https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/admin"
click node_review_hook "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/hooks/useReview.js"
click node_review_service "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/services/reviewService.js"
click node_api_app "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/app.js"
click node_provider_routes "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/routes/provider.routes.js"
click node_review_routes "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/routes/review.routes.js"
click node_provider_controller "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/provider.controller.js"
click node_review_controller "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/review.controller.js"
click node_booking_controller "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/booking.controller.js"
click node_payment_controller "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/payment.controller.js"
click node_provider_model "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/provider.model.js"
click node_category_model "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/category.model.js"
click node_booking_model "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/booking.model.js"
click node_review_model "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/review.model.js"
click node_payment_model "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/payment.model.js"
click node_provider_utils "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/utils/providerPipeline.js"
click node_schedule_pages "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/components/provider/schedule/BookingSchedule.jsx"
click node_earnings_pages "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/pages/provider/EarningAnalytics/EarningAnalytics.jsx"
click node_chat_socket "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/sockets/chat.socket.js"
click node_notification_socket "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/sockets/notification.socket.js"
click node_chat_controller "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/chat.controller.js"
click node_notification_controller "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/notification.controller.js"
click node_image_storage "https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/config/imagekit.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web_routes,node_provider_pages,node_booking_pages,node_customer_pages,node_admin_pages,node_review_hook,node_review_service toneBlue
class node_api_app,node_provider_routes,node_review_routes,node_provider_controller,node_review_controller,node_booking_controller,node_payment_controller,node_image_storage toneAmber
class node_provider_model,node_category_model,node_booking_model,node_review_model,node_payment_model,node_provider_utils toneMint
class node_schedule_pages,node_earnings_pages toneRose
class node_chat_socket,node_notification_socket,node_chat_controller,node_notification_controller,node_customer,node_provider_actor,node_admin_actor toneIndigo
```

## Components

### Web application

- [Role-based screens](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/routes/AppRoutes.jsx): `frontend/src/routes/AppRoutes.jsx`
- [Provider workspace](https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/provider): `frontend/src/pages/provider`
- [Booking screens](https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/BookingProviders): `frontend/src/pages/BookingProviders`
- [Customer screens](https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/user): `frontend/src/pages/user`
- [Admin console](https://github.com/pawandeep-kumar-bca/local-service-provider/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [Review queries](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/hooks/useReview.js): `frontend/src/hooks/useReview.js`
- [Review API client](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/services/reviewService.js): `frontend/src/services/reviewService.js`

### API and domain

- [API application](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/app.js): `backend/src/app.js`
- [Provider endpoints](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/routes/provider.routes.js): `backend/src/routes/provider.routes.js`
- [Review endpoints](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/routes/review.routes.js): `backend/src/routes/review.routes.js`
- [Provider workflows](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/provider.controller.js): `backend/src/controllers/provider.controller.js`
- [Review workflows](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/review.controller.js): `backend/src/controllers/review.controller.js`
- [Booking workflows](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/booking.controller.js): `backend/src/controllers/booking.controller.js`
- [Payment workflows](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/payment.controller.js): `backend/src/controllers/payment.controller.js`

### Marketplace data

- [Provider records](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/provider.model.js): `backend/src/models/provider.model.js`
- [Service categories](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/category.model.js): `backend/src/models/category.model.js`
- [Bookings](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/booking.model.js): `backend/src/models/booking.model.js`
- [Reviews](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/review.model.js): `backend/src/models/review.model.js`
- [Payments](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/models/payment.model.js): `backend/src/models/payment.model.js`
- [Provider search pipeline](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/utils/providerPipeline.js): `backend/src/utils/providerPipeline.js`

### Provider operations

- [Schedule management](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/components/provider/schedule/BookingSchedule.jsx): `frontend/src/components/provider/schedule/BookingSchedule.jsx`
- [Earnings workspace](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/frontend/src/pages/provider/EarningAnalytics/EarningAnalytics.jsx): `frontend/src/pages/provider/EarningAnalytics/EarningAnalytics.jsx`

### Realtime messaging

- [Chat sockets](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/sockets/chat.socket.js): `backend/src/sockets/chat.socket.js`
- [Notification sockets](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/sockets/notification.socket.js): `backend/src/sockets/notification.socket.js`
- [Chat workflows](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/chat.controller.js): `backend/src/controllers/chat.controller.js`
- [Notification workflows](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/controllers/notification.controller.js): `backend/src/controllers/notification.controller.js`

### Other components

- **Customer**
- **Service provider**
- **Administrator**
- [ImageKit storage](https://github.com/pawandeep-kumar-bca/local-service-provider/blob/main/backend/src/config/imagekit.js): `backend/src/config/imagekit.js`

## Connections

- Customer → Role-based screens: uses
- Service provider → Role-based screens: uses
- Administrator → Role-based screens: uses
- Role-based screens → Customer screens: routes to
- Role-based screens → Booking screens: routes to
- Role-based screens → Provider workspace: routes to
- Role-based screens → Admin console: routes to
- Role-based screens → Schedule management: routes to
- Role-based screens → Earnings workspace: routes to
- Review queries → Review API client: calls
- Review API client → API application: requests
- API application → Provider endpoints: mounts
- API application → Review endpoints: mounts
- Provider endpoints → Provider workflows: dispatches
- Review endpoints → Review workflows: dispatches
- Provider workflows → Provider records: queries
- Provider workflows → Service categories: queries
- Provider workflows → Provider search pipeline: builds search
- Review workflows → Reviews: queries
- Review workflows → Bookings: checks booking
- Review workflows → Provider records: updates rating
- Review workflows → Service categories: updates rating
- Review workflows → ImageKit storage: uploads images
- Booking workflows → Bookings: manages bookings
- Payment workflows → Payments: manages payments
- Chat workflows → Chat sockets: supports chat
- Notification workflows → Notification sockets: supports notifications
