# panakantinandu/sheout architecture

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

- Interactive diagram: https://gitdiagram.com/panakantinandu/sheout
- Repository: https://github.com/panakantinandu/sheout

## Overview

SheOut is a women-only Hyderabad ride and delivery platform, organized as a Spring Boot modular monolith with customer and driver PWAs. The main journey is account signup and identity verification, booking and fare estimation, driver matching and trip completion, then fare capture and partner payout. Other product branches include profile management, promotions/referrals, marketplace listings, chat, support, notifications/SOS, and operator tooling. The README documents these capabilities; sampled code confirms selected module interactions, so unsampled wiring is shown only where documentation explicitly describes it.

Main entry points: [`backend/src/main/java/com/sheout/booking/internal`](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/booking/internal) (Booking & Fare), [`backend/src/main/java/com/sheout/admin/internal`](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/admin/internal) (Admin Operations), [`backend/src/main/java/com/sheout/payments/internal`](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/payments/internal) (Trip Payments), [`backend/src/main/java/com/sheout/auth/internal`](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/auth/internal) (Auth & Sessions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity &amp; Profiles"]
  node_auth["Auth &amp; Sessions"]
  node_profiles["User Profiles"]
  node_verification["Driver Verification"]
end

subgraph group_rides["Ride Lifecycle"]
  node_booking["Booking &amp; Fare"]
  node_dispatch["Driver Dispatch"]
end

subgraph group_commerce["Commerce"]
  node_payments["Trip Payments"]
  node_payouts["Partner Payouts"]
  node_campaigns["Promos &amp; Referrals"]
  node_marketplace["Marketplace"]
end

subgraph group_safety["Safety &amp; Support"]
  node_chat["Trip Chat"]
  node_notifications["Notifications &amp; SOS"]
  node_support["Customer Support"]
  node_assistant["Help Assistant"]
end

subgraph group_operations["Operator Tools"]
  node_admin["Admin Operations"]
end

node_rider(("Rider"))
node_partner(("Driver / Partner"))
node_operator(("Operator"))
node_postgres[("PostgreSQL")]
node_redis[("Redis")]
node_razorpay["Razorpay"]
node_push_sms_email["Push / SMS / Email"]
node_osrm["OSRM Router"]

node_rider -->|"signs in"| node_auth
node_partner -->|"signs in"| node_auth
node_auth -->|"stores accounts"| node_postgres
node_auth -->|"publishes registration event"| node_verification
node_verification -->|"stores reviews"| node_postgres
node_rider -->|"requests ride"| node_booking
node_partner -->|"updates profile"| node_profiles
node_profiles -->|"checks verification"| node_verification
node_booking -->|"stores bookings"| node_postgres
node_booking -.->|"requests route estimate"| node_osrm
node_booking -->|"booking event triggers matching"| node_dispatch
node_dispatch -->|"stores locations and offers"| node_redis
node_dispatch -->|"records match"| node_booking
node_partner -->|"reports location"| node_dispatch
node_rider -->|"pays fare"| node_payments
node_payments -->|"creates and verifies charge"| node_razorpay
node_payments -->|"stores payment"| node_postgres
node_payments -->|"publishes capture event"| node_payouts
node_partner -->|"manages shop"| node_marketplace
node_marketplace -->|"starts listing fee checkout"| node_payments
node_rider -->|"applies promotion"| node_campaigns
node_campaigns -->|"checks trip eligibility"| node_booking
node_rider -->|"messages trip partner"| node_chat
node_partner -->|"messages rider"| node_chat
node_booking -->|"emits trip events"| node_notifications
node_notifications -->|"sends alerts"| node_push_sms_email
node_rider -->|"opens support ticket"| node_support
node_partner -->|"opens support ticket"| node_support
node_rider -->|"asks for help"| node_assistant
node_operator -->|"manages operations"| node_admin
node_admin -->|"reviews identity"| node_verification
node_admin -->|"reviews routes"| node_booking
node_admin -->|"handles tickets"| node_support
node_admin -->|"reviews sellers"| node_marketplace

click node_auth "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/auth/internal"
click node_profiles "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/users/internal"
click node_verification "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/driververification/internal"
click node_booking "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/booking/internal"
click node_dispatch "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/dispatch/internal"
click node_payments "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/payments/internal"
click node_payouts "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/payouts"
click node_campaigns "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/campaigns/internal"
click node_marketplace "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/marketplace/internal"
click node_chat "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/chat/internal"
click node_notifications "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/notifications/internal"
click node_support "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/support/internal"
click node_assistant "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/assistant/internal"
click node_admin "https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/admin/internal"

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_auth,node_profiles,node_verification toneBlue
class node_booking,node_dispatch,node_postgres,node_redis toneAmber
class node_payments,node_payouts,node_campaigns,node_marketplace,node_osrm toneMint
class node_chat,node_notifications,node_support,node_assistant toneRose
class node_admin,node_rider,node_partner,node_operator,node_razorpay,node_push_sms_email toneIndigo
```

## Components

### Identity & Profiles

- [Auth & Sessions](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/auth/internal): `backend/src/main/java/com/sheout/auth/internal`
- [User Profiles](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/users/internal): `backend/src/main/java/com/sheout/users/internal`
- [Driver Verification](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/driververification/internal): `backend/src/main/java/com/sheout/driververification/internal`

### Ride Lifecycle

- [Booking & Fare](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/booking/internal): `backend/src/main/java/com/sheout/booking/internal`
- [Driver Dispatch](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/dispatch/internal): `backend/src/main/java/com/sheout/dispatch/internal`

### Commerce

- [Trip Payments](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/payments/internal): `backend/src/main/java/com/sheout/payments/internal`
- [Partner Payouts](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/payouts): `backend/src/main/java/com/sheout/payouts`
- [Promos & Referrals](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/campaigns/internal): `backend/src/main/java/com/sheout/campaigns/internal`
- [Marketplace](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/marketplace/internal): `backend/src/main/java/com/sheout/marketplace/internal`

### Safety & Support

- [Trip Chat](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/chat/internal): `backend/src/main/java/com/sheout/chat/internal`
- [Notifications & SOS](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/notifications/internal): `backend/src/main/java/com/sheout/notifications/internal`
- [Customer Support](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/support/internal): `backend/src/main/java/com/sheout/support/internal`
- [Help Assistant](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/assistant/internal): `backend/src/main/java/com/sheout/assistant/internal`

### Operator Tools

- [Admin Operations](https://github.com/panakantinandu/sheout/tree/main/backend/src/main/java/com/sheout/admin/internal): `backend/src/main/java/com/sheout/admin/internal`

### Other components

- **Rider**
- **Driver / Partner**
- **Operator**
- **PostgreSQL**
- **Redis**
- **Razorpay**
- **Push / SMS / Email**
- **OSRM Router**

## Connections

- Rider → Auth & Sessions: signs in
- Driver / Partner → Auth & Sessions: signs in
- Auth & Sessions → PostgreSQL: stores accounts
- Auth & Sessions → Driver Verification: publishes registration event
- Driver Verification → PostgreSQL: stores reviews
- Rider → Booking & Fare: requests ride
- Driver / Partner → User Profiles: updates profile
- User Profiles → Driver Verification: checks verification
- Booking & Fare → PostgreSQL: stores bookings
- Booking & Fare → OSRM Router: requests route estimate
- Booking & Fare → Driver Dispatch: booking event triggers matching
- Driver Dispatch → Redis: stores locations and offers
- Driver Dispatch → Booking & Fare: records match
- Driver / Partner → Driver Dispatch: reports location
- Rider → Trip Payments: pays fare
- Trip Payments → Razorpay: creates and verifies charge
- Trip Payments → PostgreSQL: stores payment
- Trip Payments → Partner Payouts: publishes capture event
- Driver / Partner → Marketplace: manages shop
- Marketplace → Trip Payments: starts listing fee checkout
- Rider → Promos & Referrals: applies promotion
- Promos & Referrals → Booking & Fare: checks trip eligibility
- Rider → Trip Chat: messages trip partner
- Driver / Partner → Trip Chat: messages rider
- Booking & Fare → Notifications & SOS: emits trip events
- Notifications & SOS → Push / SMS / Email: sends alerts
- Rider → Customer Support: opens support ticket
- Driver / Partner → Customer Support: opens support ticket
- Rider → Help Assistant: asks for help
- Operator → Admin Operations: manages operations
- Admin Operations → Driver Verification: reviews identity
- Admin Operations → Booking & Fare: reviews routes
- Admin Operations → Customer Support: handles tickets
- Admin Operations → Marketplace: reviews sellers
