# naren-sdet-qa/bookmyspace_andriod architecture

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

- Interactive diagram: https://gitdiagram.com/naren-sdet-qa/bookmyspace_andriod
- Repository: https://github.com/naren-sdet-qa/bookmyspace_andriod

## Overview

BookMySpace is a venue discovery and booking app with customer, venue-owner, and admin workflows. The main customer journey runs from finding a venue through booking and payment to confirmation and check-in. The tree also shows discovery, events and courses, configurable registration, owner reporting, integrations, notifications, and administration. Source excerpts support discovery, payment, invoice, notification, and integration links; other subsystem paths are based on the file tree, so their internal wiring is left out.

Main entry points: [`app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentProcessingService.kt`](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentProcessingService.kt) (Payment processing), [`app/src/main/java/com/bookmyspace/bookmyspace/data/repository/BookMySpaceRepository.kt`](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/repository/BookMySpaceRepository.kt) (Booking repository), [`app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentService.kt`](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentService.kt) (Payment service), [`app/src/main/java/com/bookmyspace/bookmyspace/data/notification/BookMySpaceFirebaseMessagingService.kt`](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/notification/BookMySpaceFirebaseMessagingService.kt) (Push reminders)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["App experience"]
  node_app["Android app<br/>[MainActivity.kt]"]
  node_navigation["App navigation<br/>[AppNavigation.kt]"]
  node_home["Home and search<br/>[HomeScreen.kt]"]
  node_discovery["Venue discovery"]
  node_events["Events and courses"]
end

subgraph group_booking["Booking lifecycle"]
  node_repository["Booking repository"]
  node_bookingui["Booking screen<br/>[BookingScreen.kt]"]
  node_paymentui["Payment screen<br/>[PaymentScreen.kt]"]
  node_paymentservice["Payment service<br/>[PaymentService.kt]"]
  node_paymentprocessor["Payment processing"]
  node_transactions["Payment transactions"]
  node_invoice["Invoice email"]
  node_confirmation["Booking confirmation"]
  node_checkin["QR check-in"]
end

subgraph group_platform["Platform services"]
  node_placecache[("Discovery cache")]
  node_push["Push reminders"]
end

subgraph group_operations["Owner and admin"]
  node_owner["Owner dashboards"]
  node_reports["Business reports"]
  node_admin["Admin configuration"]
  node_registration["Registration schema"]
  node_integrations["External integrations"]
end

subgraph group_backend["Backend functions"]
  node_supabase["Supabase functions"]
end

node_customer(("Customer"))
node_razorpay{{"Razorpay"}}
node_firebase{{"Firebase services"}}

node_customer -->|"opens"| node_app
node_app -->|"starts"| node_navigation
node_navigation -->|"routes"| node_home
node_home -->|"finds places"| node_discovery
node_discovery -->|"reads and writes"| node_placecache
node_customer -->|"selects venue"| node_bookingui
node_bookingui -->|"creates booking"| node_repository
node_customer -->|"pays"| node_paymentui
node_paymentui -->|"starts payment"| node_paymentservice
node_paymentservice -.->|"invokes checkout"| node_razorpay
node_paymentservice -->|"processes result"| node_paymentprocessor
node_paymentprocessor -->|"records payment"| node_transactions
node_paymentprocessor -->|"confirms booking"| node_repository
node_paymentprocessor -->|"triggers invoice"| node_invoice
node_customer -->|"views result"| node_confirmation
node_customer -->|"scans pass"| node_checkin
node_push -->|"receives messages"| node_firebase
node_push -->|"updates token"| node_repository
node_owner -->|"views reports"| node_reports
node_admin -->|"configures fields"| node_registration
node_integrations -->|"reads venues"| node_repository
node_customer -->|"explores"| node_events
node_integrations -.->|"optional API"| node_supabase

click node_app "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/MainActivity.kt"
click node_navigation "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/navigation/AppNavigation.kt"
click node_home "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/HomeScreen.kt"
click node_discovery "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/discovery/PlaceDiscoveryEngine.kt"
click node_placecache "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/local/BookMySpaceRoomDatabase.kt"
click node_repository "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/repository/BookMySpaceRepository.kt"
click node_bookingui "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingScreen.kt"
click node_paymentui "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/PaymentScreen.kt"
click node_paymentservice "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentService.kt"
click node_paymentprocessor "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentProcessingService.kt"
click node_transactions "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/repository/PaymentTransactionRepository.kt"
click node_invoice "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/email/InvoiceEmailService.kt"
click node_confirmation "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingSuccessScreen.kt"
click node_checkin "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/QrCheckInScannerScreen.kt"
click node_push "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/notification/BookMySpaceFirebaseMessagingService.kt"
click node_owner "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/OwnerDashboardScreen.kt"
click node_reports "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/report/BusinessReportEngine.kt"
click node_admin "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/AdminSettingsScreen.kt"
click node_registration "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/model/RegistrationConfigJsonEngine.kt"
click node_events "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/EventsAndCoursesScreens.kt"
click node_integrations "https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/integration/ExternalAppAndMcpService.kt"
click node_supabase "https://github.com/naren-sdet-qa/bookmyspace_andriod/tree/main/supabase/functions"

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_app,node_navigation,node_home,node_discovery,node_events toneBlue
class node_repository,node_bookingui,node_paymentui,node_paymentservice,node_paymentprocessor,node_transactions,node_invoice,node_confirmation,node_checkin toneAmber
class node_placecache,node_push toneMint
class node_owner,node_reports,node_admin,node_registration,node_integrations toneRose
class node_supabase,node_customer,node_razorpay,node_firebase toneIndigo
```

## Components

### App experience

- [Android app](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/MainActivity.kt): `app/src/main/java/com/bookmyspace/bookmyspace/MainActivity.kt`
- [App navigation](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/navigation/AppNavigation.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/navigation/AppNavigation.kt`
- [Home and search](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/HomeScreen.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/HomeScreen.kt`
- [Venue discovery](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/discovery/PlaceDiscoveryEngine.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/discovery/PlaceDiscoveryEngine.kt`
- [Events and courses](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/EventsAndCoursesScreens.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/EventsAndCoursesScreens.kt`

### Booking lifecycle

- [Booking repository](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/repository/BookMySpaceRepository.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/repository/BookMySpaceRepository.kt`
- [Booking screen](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingScreen.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingScreen.kt`
- [Payment screen](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/PaymentScreen.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/PaymentScreen.kt`
- [Payment service](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentService.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentService.kt`
- [Payment processing](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentProcessingService.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentProcessingService.kt`
- [Payment transactions](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/repository/PaymentTransactionRepository.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/repository/PaymentTransactionRepository.kt`
- [Invoice email](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/email/InvoiceEmailService.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/email/InvoiceEmailService.kt`
- [Booking confirmation](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingSuccessScreen.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingSuccessScreen.kt`
- [QR check-in](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/QrCheckInScannerScreen.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/QrCheckInScannerScreen.kt`

### Platform services

- [Discovery cache](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/local/BookMySpaceRoomDatabase.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/local/BookMySpaceRoomDatabase.kt`
- [Push reminders](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/notification/BookMySpaceFirebaseMessagingService.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/notification/BookMySpaceFirebaseMessagingService.kt`

### Owner and admin

- [Owner dashboards](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/OwnerDashboardScreen.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/OwnerDashboardScreen.kt`
- [Business reports](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/report/BusinessReportEngine.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/report/BusinessReportEngine.kt`
- [Admin configuration](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/AdminSettingsScreen.kt): `app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/AdminSettingsScreen.kt`
- [Registration schema](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/model/RegistrationConfigJsonEngine.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/model/RegistrationConfigJsonEngine.kt`
- [External integrations](https://github.com/naren-sdet-qa/bookmyspace_andriod/blob/main/app/src/main/java/com/bookmyspace/bookmyspace/data/integration/ExternalAppAndMcpService.kt): `app/src/main/java/com/bookmyspace/bookmyspace/data/integration/ExternalAppAndMcpService.kt`

### Backend functions

- [Supabase functions](https://github.com/naren-sdet-qa/bookmyspace_andriod/tree/main/supabase/functions): `supabase/functions`

### Other components

- **Customer**
- **Razorpay**
- **Firebase services**

## Connections

- Customer → Android app: opens
- Android app → App navigation: starts
- App navigation → Home and search: routes
- Home and search → Venue discovery: finds places
- Venue discovery → Discovery cache: reads and writes
- Customer → Booking screen: selects venue
- Booking screen → Booking repository: creates booking
- Customer → Payment screen: pays
- Payment screen → Payment service: starts payment
- Payment service → Razorpay: invokes checkout
- Payment service → Payment processing: processes result
- Payment processing → Payment transactions: records payment
- Payment processing → Booking repository: confirms booking
- Payment processing → Invoice email: triggers invoice
- Customer → Booking confirmation: views result
- Customer → QR check-in: scans pass
- Push reminders → Firebase services: receives messages
- Push reminders → Booking repository: updates token
- Owner dashboards → Business reports: views reports
- Admin configuration → Registration schema: configures fields
- External integrations → Booking repository: reads venues
- Customer → Events and courses: explores
- External integrations → Supabase functions: optional API
