# arunyogi123/online-car-wash-booking-system architecture

> Architecture diagram of the GitHub repository arunyogi123/online-car-wash-booking-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/arunyogi123/online-car-wash-booking-system
- Repository: https://github.com/arunyogi123/online-car-wash-booking-system

## Overview

This Django car-wash booking system supports account access, service browsing, appointment scheduling, payment, and booking management, with an admin capability documented in the README. The graph separates the customer-facing UI, API workflows, and domain data. API-to-implementation links are supported by the URL modules and source index; some UI and admin behavior is documented but not traced through sampled runtime code.

Main entry points: [`booking/models.py`](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/models.py) (Booking records), [`payment/api/v1/views.py`](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/payment/api/v1/views.py) (Payment API), [`services/api/v1/views.py`](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/services/api/v1/views.py) (Service API), [`booking/api/v1/views.py`](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/api/v1/views.py) (Booking API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Customer interface"]
  node_webui["Web interface<br/>[app.js]"]
  node_webviews["Presentation views<br/>[views.py]"]
end

subgraph group_identity["Accounts"]
  node_authapi["Account API<br/>[views.py]"]
  node_authserializers["Account serializers<br/>[serializers.py]"]
  node_accountdata[("User profiles<br/>[models.py]")]
end

subgraph group_catalog["Services"]
  node_serviceapi["Service API<br/>[views.py]"]
  node_serviceserializers["Service serializer<br/>[serializers.py]"]
  node_servicedata[("Service catalog<br/>[models.py]")]
end

subgraph group_appointments["Bookings"]
  node_bookingapi["Booking API<br/>[views.py]"]
  node_bookingserializers["Booking validation<br/>[serializers.py]"]
  node_bookingdata[("Booking records<br/>[models.py]")]
end

subgraph group_payments["Payments"]
  node_paymentapi["Payment API<br/>[views.py]"]
  node_khaltihelper["Khalti client<br/>[utils.py]"]
  node_paymentresult["Payment result page<br/>[views.py]"]
end

node_customer(("Customer"))
node_khalti{{"Khalti"}}
node_admin["Admin panel"]

node_customer -.->|"uses"| node_webui
node_webui -.->|"requests"| node_webviews
node_customer -->|"registers, logs in"| node_authapi
node_authapi -->|"validates"| node_authserializers
node_authserializers -->|"creates, reads"| node_accountdata
node_customer -->|"browses"| node_serviceapi
node_serviceapi -->|"serializes"| node_serviceserializers
node_serviceapi -->|"reads, manages"| node_servicedata
node_customer -->|"books, manages"| node_bookingapi
node_bookingapi -->|"validates"| node_bookingserializers
node_bookingapi -->|"reads, writes"| node_bookingdata
node_bookingserializers -->|"checks slots"| node_bookingdata
node_bookingdata -->|"references customer"| node_accountdata
node_bookingdata -->|"references service"| node_servicedata
node_customer -->|"starts payment"| node_paymentapi
node_paymentapi -->|"loads, updates"| node_bookingdata
node_paymentapi -->|"initiates, verifies"| node_khaltihelper
node_khaltihelper -->|"calls API"| node_khalti
node_paymentapi -->|"renders"| node_paymentresult
node_admin -.->|"manages services"| node_serviceapi
node_admin -.->|"manages bookings"| node_bookingdata
node_admin -.->|"manages users"| node_accountdata
node_admin -.->|"manages payments"| node_paymentapi

click node_webui "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/presentation/static/presentation/js/app.js"
click node_webviews "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/presentation/views.py"
click node_authapi "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/account/api/v1/views.py"
click node_authserializers "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/account/api/v1/serializers.py"
click node_accountdata "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/account/models.py"
click node_serviceapi "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/services/api/v1/views.py"
click node_serviceserializers "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/services/api/v1/serializers.py"
click node_servicedata "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/services/models.py"
click node_bookingapi "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/api/v1/views.py"
click node_bookingserializers "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/api/v1/serializers.py"
click node_bookingdata "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/models.py"
click node_paymentapi "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/payment/api/v1/views.py"
click node_khaltihelper "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/payment/utils.py"
click node_paymentresult "https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/payment/api/v1/views.py"

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_webui,node_webviews toneBlue
class node_authapi,node_authserializers,node_accountdata toneAmber
class node_serviceapi,node_serviceserializers,node_servicedata toneMint
class node_bookingapi,node_bookingserializers,node_bookingdata toneRose
class node_paymentapi,node_khaltihelper,node_paymentresult,node_customer,node_khalti,node_admin toneIndigo
```

## Components

### Customer interface

- [Web interface](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/presentation/static/presentation/js/app.js): `presentation/static/presentation/js/app.js`
- [Presentation views](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/presentation/views.py): `presentation/views.py`

### Accounts

- [Account API](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/account/api/v1/views.py): `account/api/v1/views.py`
- [Account serializers](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/account/api/v1/serializers.py): `account/api/v1/serializers.py`
- [User profiles](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/account/models.py): `account/models.py`

### Services

- [Service API](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/services/api/v1/views.py): `services/api/v1/views.py`
- [Service serializer](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/services/api/v1/serializers.py): `services/api/v1/serializers.py`
- [Service catalog](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/services/models.py): `services/models.py`

### Bookings

- [Booking API](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/api/v1/views.py): `booking/api/v1/views.py`
- [Booking validation](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/api/v1/serializers.py): `booking/api/v1/serializers.py`
- [Booking records](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/booking/models.py): `booking/models.py`

### Payments

- [Payment API](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/payment/api/v1/views.py): `payment/api/v1/views.py`
- [Khalti client](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/payment/utils.py): `payment/utils.py`
- [Payment result page](https://github.com/arunyogi123/online-car-wash-booking-system/blob/main/payment/api/v1/views.py): `payment/api/v1/views.py`

### Other components

- **Customer**
- **Khalti**
- **Admin panel**

## Connections

- Customer → Web interface: uses (evidence: `README.md`)
- Web interface → Presentation views: requests
- Customer → Account API: registers, logs in (evidence: `README.md`)
- Account API → Account serializers: validates (evidence: `account/api/v1/views.py`)
- Account serializers → User profiles: creates, reads (evidence: `account/api/v1/serializers.py`)
- Customer → Service API: browses (evidence: `README.md`)
- Service API → Service serializer: serializes (evidence: `services/api/v1/views.py`)
- Service API → Service catalog: reads, manages (evidence: `services/api/v1/views.py`)
- Customer → Booking API: books, manages (evidence: `README.md`)
- Booking API → Booking validation: validates (evidence: `booking/api/v1/views.py`)
- Booking API → Booking records: reads, writes (evidence: `booking/api/v1/views.py`)
- Booking validation → Booking records: checks slots (evidence: `booking/api/v1/serializers.py`)
- Booking records → User profiles: references customer (evidence: `booking/models.py`)
- Booking records → Service catalog: references service (evidence: `booking/models.py`)
- Customer → Payment API: starts payment (evidence: `README.md`)
- Payment API → Booking records: loads, updates (evidence: `payment/api/v1/views.py`)
- Payment API → Khalti client: initiates, verifies (evidence: `payment/api/v1/views.py`)
- Khalti client → Khalti: calls API (evidence: `payment/utils.py`)
- Payment API → Payment result page: renders (evidence: `payment/api/v1/views.py`)
- Admin panel → Service API: manages services (evidence: `README.md`)
- Admin panel → Booking records: manages bookings (evidence: `README.md`)
- Admin panel → User profiles: manages users (evidence: `README.md`)
- Admin panel → Payment API: manages payments (evidence: `README.md`)
