DAHAB• دهب Guest App · Product Specification
Dahab Reservations · Touring · Trips

Guest App — Product Specification

Every guest-app module described from the business requirements (SRS v1.0) and the final Figma design: screens for all four breakpoints, UI elements, step-by-step flows, states, business rules, Jira story candidates and open issues.

10Modules
178Figma frames
4Breakpoints
115Open issues
35High / blocker

Modules

Each module becomes one Jira epic. Open a module to see its screens, flows and stories.

How to read a module page

Summary & SRSWhat the module does and which requirements (FR / NFR) it covers, with priority and MVP flag.
ScreensEvery state in Desktop · Tablet · Mobile Web · Native. Click a screen to open it full size, or jump to the Figma frame.
Flows & rulesUI elements, step-by-step tables (guest action → system response), states, errors and business rules.
Stories & gapsJira story candidates with acceptance criteria, then the gaps and decisions still needed.

Top findings across all modules (decide before writing stories)

A. Screens required by the SRS but missing from Figma

Missing screen Blocks Module
Checkout — Guest details & payment (stays) FR-3.2, FR-5.1 (High, MVP) 06
Checkout — Participant details & payment (activities) FR-4.2 (High, MVP) 07
Set new password (after reset link/code) FR-1.2 01
OTP error states (wrong / expired / too many attempts) FR-1.5 01
Activity search filter panel + empty state FR-2.2, FR-2.6 03
Activity cancel / reschedule FR-4.3 07
AI Concierge screens (exist in Stitch only) + launcher FR-10.1, FR-10.2 10
Logged-in web account menu (Profile, Bookings, Saved, Log out) FR-1.2 01
Stories/Guides index, Zones index FR-2.4 04

B. Designed features that the SRS marks "Later" (decide: hide for MVP or move into MVP)

In-app chat with host/instructor (FR-8.1) · host responses to reviews (FR-6.3) · review photo upload (FR-6.2) · currency selector (FR-20.3) · "Save to Itinerary" (AI trip planner FR-9) · plus features not in the SRS at all: audio article narration, wishlist collections/sharing & split deposits, extended profile (passport ID, emergency contact, dive certificates, permits), French/German/Russian + Hijri calendar settings, "Request Host Override" on date changes, host moderation of reviews.

C. Data that must be defined once (currently inconsistent between screens)

  • Fee & tax model for stays (5% fund vs fixed levies; 10% vs 14% tax) — module 06 G2.
  • Cancellation windows (5 days vs 48 h for the same property; 48 h vs 24 h for the activity).
  • Activity price (EGP 1,650 vs 2,400), time windows and add-on prices — module 07 G1–G3.
  • Emergency numbers (several variants of the chamber, police and hospital numbers) — module 04 G1.
  • Password rule, OTP validity, lockout policy — module 01.
  • Instant booking vs host confirmation — module 03 G7 / module 05 G9.
  • Native tab bar (4 tabs vs 5 with "Updates") and the web PWA banner wrongly shown on native frames.
  • Brand name changes between modules: "DAHAB • دهب — Reservations • Touring • Trips" (auth, discovery, search, guide), "Dahab Sanctuary & Sea" / "Dahab Sanctuary & Sea Marketplace" (bookings, reviews, favourites, settings), "DAHAB LIFE" (native notifications).
  • Lead instructor for the same freediving session: Youssef Ben-Ammar (detail, confirmation, notifications) vs Captain Zaki Mansour (session picker).
  • Review categories for stays and activities (Leave a Review ≠ Reviews Expanded).
  • Live marine-conditions data source (used on Home, Zone, POI, Activity, Concierge) — not in SRS §5.3.

D. Figma housekeeping

  • Discovery Home has 3 different filter panels on Native/Mobile Web and 2 on Tablet — pick one.
  • Duplicate frame: Activity Detail — Reviews Expanded (Desktop) ×2.
  • Desktop error states for Register/Login use a different header and misspell the brand in Arabic ("ذهب" instead of "دهب").
  • Tablet frames are 1280 px wide in Figma (named 834 px).
  • Desktop Cancel Booking dialog renders behind the page footer; broken glyphs in the header currency pill (later modules).