How naren-sdet-qa/bookmyspace_andriod works
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: PaymentProcessingService.kt Payment processing · BookMySpaceRepository.kt Booking repository · PaymentService.kt Payment service · BookMySpaceFirebaseMessagingService.kt Push reminders
Components 25
App experience
- Android app
app/src/main/java/com/bookmyspace/bookmyspace/MainActivity.kt - App navigation
app/src/main/java/com/bookmyspace/bookmyspace/ui/navigation/AppNavigation.kt - Home and search
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/HomeScreen.kt - Venue discovery
app/src/main/java/com/bookmyspace/bookmyspace/data/discovery/PlaceDiscoveryEngine.kt - Events and courses
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/EventsAndCoursesScreens.kt
Booking lifecycle
- Booking repository
app/src/main/java/com/bookmyspace/bookmyspace/data/repository/BookMySpaceRepository.kt - Booking screen
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingScreen.kt - Payment screen
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/PaymentScreen.kt - Payment service
app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentService.kt - Payment processing
app/src/main/java/com/bookmyspace/bookmyspace/data/payment/PaymentProcessingService.kt - Payment transactions
app/src/main/java/com/bookmyspace/bookmyspace/data/repository/PaymentTransactionRepository.kt - Invoice email
app/src/main/java/com/bookmyspace/bookmyspace/data/email/InvoiceEmailService.kt - Booking confirmation
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/BookingSuccessScreen.kt - QR check-in
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/QrCheckInScannerScreen.kt
Platform services
- Discovery cache
app/src/main/java/com/bookmyspace/bookmyspace/data/local/BookMySpaceRoomDatabase.kt - Push reminders
app/src/main/java/com/bookmyspace/bookmyspace/data/notification/BookMySpaceFirebaseMessagingService.kt
Owner and admin
- Owner dashboards
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/OwnerDashboardScreen.kt - Business reports
app/src/main/java/com/bookmyspace/bookmyspace/data/report/BusinessReportEngine.kt - Admin configuration
app/src/main/java/com/bookmyspace/bookmyspace/ui/screens/AdminSettingsScreen.kt - Registration schema
app/src/main/java/com/bookmyspace/bookmyspace/data/model/RegistrationConfigJsonEngine.kt - External integrations
app/src/main/java/com/bookmyspace/bookmyspace/data/integration/ExternalAppAndMcpService.kt
Backend functions
- Supabase functions
supabase/functions
Other components
- Customer
- Razorpay
- Firebase services
Connections 23
- 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