Product Requirements Document

Yatra Setu

A travel and pilgrimage booking platform for India — discover holy sites and cities, book buses or curated packages, pay securely, and carry every ticket in one app. This document specifies the Customer mobile app and the web-based Admin panel.

Version 1.0 · DraftDate June 2026Status For reviewClassification Confidential

1. Overview

1.1 Purpose

This document defines the product requirements for Yatra Setu, a mobile-first travel booking platform focused on Indian pilgrimage circuits and city travel. Customers search for a destination — a temple town, a pilgrim circuit, or a city — then either book a bus for the journey or buy a curated tour package, pay through Razorpay, PhonePe or Paytm, and receive an instant in-app booking confirmation. The platform spans a Customer mobile app and a web-based Admin panel for the super admin and operations team.

1.2 Product vision

To be the most trusted way for Indian travellers and pilgrims to plan and book a journey — combining reliable bus inventory, hand-picked pilgrimage and city packages, transparent pricing, and instant digital tickets, all backed by an operations console that gives the business full control of catalogue, bookings, payments and refunds.

1.3 Scope

In scope: OTP onboarding; destination discovery and search; bus search, seat selection and boarding points; curated pilgrimage and city packages with day-wise itineraries; traveller details; payments via Razorpay, PhonePe, Paytm, UPI and cards; instant confirmation and e-tickets/vouchers; trips with upcoming and past bookings, cancellation and refunds; and the Admin panel (dashboard, bookings, package and route catalogue, payments, users, coupons, content and reports).

Out of scope (v1): flights and trains, hotels-only booking, international destinations, and a separate operator/agent self-service portal (operators are onboarded by Admin in v1).

2. Personas

Five primary actors interact with the platform.

PersonaDescriptionPrimary goals
Traveller / PilgrimIndividual booking a journey for self or family.Find the right trip fast, fair price, safe travel, instant ticket.
Group organizerBooks for a family or a group of pilgrims.Multiple travellers, group seats, one payment, shared tickets.
Operations / OpsManages bookings, refunds and day-to-day issues.Resolve bookings quickly, manage cancellations and payouts.
Catalogue managerCurates packages, routes and content.Publish packages, manage bus inventory, run offers.
Super AdminBusiness operator running the platform.Control pricing, monitor revenue, manage users & settings.

3. Discovery & Search

3.1 Search & destinations

The home screen leads with search: a traveller enters a destination (e.g. Tirupati, Shirdi, Varanasi, Vaishno Devi) or a from–to route and a date. Results combine bus options and packages for that destination. Curated pilgrimage circuits (Char Dham, Jyotirlinga, Shakti Peeth) and popular cities are surfaced as featured collections with imagery.

3.2 Filters & categories

Results can be filtered by date, journey type (bus / package), price band, duration, departure city, and amenities. Quick categories — Buses, Packages, Pilgrimage, Hill stations — let users browse without typing. A destination detail page describes the place, shows the best bus fares and available packages, and offers two clear actions: Book a bus or Book a package. See search → booking → payment live in the demo →

4. Bus Booking

4.1 Search results & selection

For a chosen route and date, the app lists available buses with operator, bus type (Seater / Sleeper / AC / Non-AC), departure and arrival time, duration, rating, fare and seats available. Selecting a bus opens an interactive seat map showing available, booked and selected seats, with gender-aware seat rules where required.

4.2 Boarding points & fare

The traveller picks boarding and dropping points, reviews the fare (base + taxes + convenience fee), and proceeds to traveller details. Seats are held with a short lock during checkout so two users cannot book the same seat; the lock releases automatically if payment is not completed in time.

5. Package Booking

Curated pilgrimage and city packages carry a hero image, a day-wise itinerary, inclusions and exclusions (travel, stay, darshan/sightseeing, meals), duration, departure dates and a per-person price. The traveller selects a departure date and number of travellers, reviews the breakdown, and continues to traveller details. Packages can be marked as fixed-departure (set dates) or on-request, and support add-ons (extra night, guide, meals) configured from Admin.

6. Payments & Confirmation

Checkout collects the lead passenger and co-travellers, then payment. Yatra Setu integrates Razorpay, PhonePe and Paytm alongside UPI and cards; the gateway is selected at checkout and configurable from Admin. The fare breakup (base, taxes, convenience fee, discount) is shown before payment. On success the app shows an instant confirmation with a booking ID and a digital e-ticket / voucher (with QR) stored in the app; on failure the seat lock releases and the user can retry. Cancellations follow a configurable policy with automated refunds back to the source.

StepBehaviour
Fare breakupBase fare, taxes, convenience fee and any coupon discount shown before payment.
GatewayRazorpay / PhonePe / Paytm / UPI / cards; gateways toggled from Admin.
ConfirmationInstant in-app confirmation + e-ticket / voucher with QR and booking ID.
RefundsPolicy-driven, automated to source; tracked in Admin → Payments.

7. Trips & History

The Trips tab separates Upcoming and Past bookings. Each booking opens to a full ticket: journey details, travellers, boarding point, fare paid, status, and actions to download or share the ticket, get directions to the boarding point, cancel (per policy), or re-book. Past trips support quick re-booking and rating. A complete booking history is always available offline within the app.

8. Admin Panel

The Admin panel is the web-based operations and configuration hub for the super admin and ops team, organized as a grouped left-sidebar navigation.

CategoryItems
DashboardKPIs: bookings, revenue/GMV, today's trips, conversion.
BookingsAll bus & package bookings, status, traveller details, actions.
PackagesCreate & manage packages, itineraries, departure dates, pricing.
Routes & BusesOperators, routes, bus types, seat layouts, fares, inventory.
PaymentsTransactions, gateways, refunds, settlements, reconciliation.
UsersCustomers, profiles, booking history, access.
CouponsDiscount campaigns and promotional offers.
ContentBanners, featured collections, destination pages, CMS.
ReportsSales, route & package performance, refunds, gateway split.
SettingsGateways, taxes & fees, cancellation policy, roles & access.

9. Notifications & Support

Notifications

Push, SMS and WhatsApp for booking confirmation, departure reminders, gate/boarding updates and refund status.

Support

In-app help & tickets, call/WhatsApp support, and a cancellation/refund self-service flow.

Safety

Verified operators, masked calling to drivers/operators, and emergency contact during the journey.

Localization

English + Hindi (and regional languages roadmap) with rupee pricing and Indian date formats.

10. Non-Functional Requirements

Performance

Search results under 2 seconds; seat map and checkout interactive under 1.5 seconds.

Scalability

Handle pilgrim-season peaks (Kumbh, Char Dham, festivals) with horizontal scaling and Redis seat-locking.

Security & payments

PCI-DSS-aligned payment handling via gateways (no raw card storage), encrypted PII, OTP auth, RBAC for admin.

Reliability

99.9% uptime; idempotent payments & webhooks; graceful seat-lock release on failure.

Compliance

GST-compliant invoicing, RBI payment-aggregator norms, and data handling per Indian regulation.

Observability

Audit logs for bookings, payments and refunds; reconciliation reports; alerting on failed webhooks.

11. Booking Status Model

StatusMeaning
DraftSeats/package selected; traveller filling details.
Payment pendingSeat lock held; awaiting gateway payment.
ConfirmedPayment successful; e-ticket / voucher issued.
UpcomingConfirmed booking with a future departure date.
CompletedJourney date passed; eligible for rating & re-book.
CancelledCancelled by customer or ops per policy.
RefundedRefund processed to source after cancellation.

12. Open Questions

  1. Which bus inventory source — direct operator tie-ups, an aggregator API, or both — for launch?
  2. Default cancellation & refund slabs (time-before-departure tiers) and who bears the gateway fee?
  3. Convenience-fee model: flat, percentage, or absorbed into fare?
  4. Which gateway is primary vs fallback (Razorpay / PhonePe / Paytm), and routing logic?
  5. Which pilgrimage circuits and cities launch in v1 versus later phases?
Interactive demo

Two sides, one platform.

The customer mobile app and the super-admin panel — one codebase, one design language. Switch between them and click through a real booking.

Delivery timeline

A proposed 18-week build.

Five phases across three tracks, on a week scale. Each feature flows User Flow → Design → Frontend → Backend, staggered so design and build pipeline cleanly.

Customer App Admin Panel Backend & Payments Cross-cutting Milestone
Weeks 1–4

Phase 1 · Foundation & App core

Architecture, OTP auth, home & search, destination catalogue and discovery.

Weeks 5–8

Phase 2 · Booking engines

Bus search, seat map & inventory with Redis seat-locking; packages & itineraries.

Weeks 9–12

Phase 3 · Payments & Trips

Razorpay/PhonePe/Paytm, confirmation & e-tickets, trips/history, cancellation & refunds.

Weeks 13–16

Phase 4 · Admin Panel

Dashboard, bookings, package & route catalogue, payments, users, coupons, reports.

Weeks 17–18

Phase 5 · Hardening & handoff

Notifications & support, QA · load · security, reconciliation, UAT & documentation.

Technology

One stack, two surfaces.

A TypeScript-first architecture: React Native for the customer app, Next.js for the Admin panel and web, and NestJS powering a shared backend with Redis seat-locking and India-ready payment integrations.

Customer app

React Native

iOS + Android from one codebase — search, seat selection, payments and e-tickets, with offline ticket access.

  • Expo / RN with TypeScript
  • Seat map, maps & boarding points
  • Push notifications & deep links
  • In-app payment SDKs
Web & admin

Next.js

The full Admin panel plus the marketing/SEO site and web booking — SSR for discovery, RBAC for ops.

  • React + TypeScript, App Router
  • Admin: bookings, catalogue, payments
  • SSR/ISR destination & package pages
  • Role-based access control
Backend

NestJS

One modular API — auth, catalogue & search, bus inventory, packages, orders, payments and refunds.

  • Node + TypeScript, modular services
  • Redis seat-lock & job queues
  • Idempotent payments & webhooks
  • Razorpay · PhonePe · Paytm adapters

System architecture

Customer AppReact Native
HTTPS · WebSocket
API GatewayAuth · rate limiting · routing
NestJS services
Auth & OTP
Catalogue & Search
Bus Inventory & Seats
Packages & Itinerary
Booking & Orders
Payments & Refunds
Notifications
Reports
PostgreSQLCore data
RedisSeat-lock · cache · queue
S3 storageImages & e-tickets
Outbound adapters
PaymentsRazorpay · PhonePe · Paytm
MapsRouting & boarding points
MessagingPush · SMS · WhatsApp

Supporting stack

Data

PostgreSQL (primary), Redis for caching, seat-locks and queues.

Search

Postgres full-text or Elasticsearch for destination, route & package search.

Payments

Razorpay, PhonePe & Paytm with idempotent orders, webhooks & auto-refunds.

Maps

Google/Mapbox for boarding points, directions and ETAs.

Infra & DevOps

Containerized (Docker) on AWS/GCP, CI/CD, autoscaling for season peaks.

Observability

Centralized logs, metrics & alerts; payment reconciliation & audit trails.

Why this stack

TypeScript end to end

One language across app, web and backend — shared types and validation, fewer integration bugs.

Reliable seat-locking

Redis locks prevent double-booking under load; idempotent payments keep money and tickets consistent.

Modular & scalable

NestJS modules let search, inventory and payments scale independently for pilgrim-season peaks.

India-ready & hireable

First-class Razorpay/PhonePe/Paytm support and a deep React/Node talent pool.