# System Architecture

### High-level view

BeePlus consists of the following main components:

* **Mobile apps** for Customers and Drivers
* **Backend services** (API gateway, order service, pricing service, auth, etc.)
* **Admin panel** for operations team
* **Databases and storage** for transactional data and logs
* **Third-party services** (maps, payments, SMS, push notifications, etc.)

### Core services

* **Authentication Service** – user registration, login, tokens.
* **User Service** – profiles for customers and drivers.
* **Order Service** – orders, statuses, tracking.
* **Pricing Service** – time-based and distance-based pricing logic.
* **Dispatch Service** – matching orders with drivers.
* **Notification Service** – push, SMS, and email notifications.

### Technology stack (example, adjust to reality)

* Backend: Node.js / Python / (your actual stack)
* API style: REST over HTTPS, JSON payloads
* Mobile apps: iOS + Android (React Native / Flutter / native, etc.)
* Database: PostgreSQL / MySQL / (actual DB)
* Caching: Redis (for sessions, hot data, etc.)
* Message queue: (e.g., RabbitMQ / Kafka / SQS, if used)

### Infrastructure

* Cloud provider: (AWS / GCP / other)
* Environments: `development`, `staging`, `production`
* Deployment: CI/CD pipeline (build → test → deploy)

### Diagrams

Architecture diagrams are stored in `/docs/diagrams` (or another folder).\
Use them as the single source of truth for services and integrations.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beeplus.gitbook.io/beeplus-docs/system-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
