Product Map¶
The Product Map is the blueprint of the entire Yam3at platform: every domain, module, and capability, each in exactly one place. Every other document in this Bible — SRS modules, ERD, API endpoints, backlog — is derived from this map. If a feature is not on this map, it does not exist; if it is on the map, there is exactly one answer to "where does it belong?"
Yam3at is organized as 12 business domains following Domain-Driven Design. Deliberately, there is no "Customer module", "Vendor module", or "Admin module" — those are users, not domains. Customers, vendors, and admins all use the same domains through different permissions.
The three ownership rules¶
Rule 1 — Everything belongs somewhere
Nothing exists by itself. Every feature, screen, table, and endpoint maps to exactly one domain. If someone asks "where does Vendor Subscription live?" there is one exact answer (Vendor domain, billed through the Financial domain's payment engine).
Rule 2 — One owner per feature
Every feature has exactly one owning domain. Messaging belongs to Communication — not to Vendor, not to Customer, not to Admin. Everyone uses it; one domain owns it. The owner defines its data model, business rules, and API surface.
Rule 3 — Engines are shared
There are no "Vendor Notifications", "Customer Notifications", and "Admin Notifications". There is one Notification Engine used by everyone. The same applies to messaging, payments, files, and search. Shared engines are built once, in their owning domain, and consumed by all user types. This single principle saves months of development.
Domain overview¶
flowchart TB
subgraph Core["Core value"]
EVT["2 · Event<br/>the heart"]
MKT["3 · Marketplace<br/>discovery"]
BKG["5 · Booking<br/>quotes → bookings"]
end
subgraph Sides["The two sides"]
IDN["1 · Identity<br/>users & access"]
VND["4 · Vendor<br/>vendor business"]
end
subgraph Engines["Shared engines"]
FIN["6 · Financial<br/>all money"]
COM["7 · Communication<br/>messages & notifications"]
PLT["11 · Platform<br/>files · search · i18n · flags · audit"]
end
subgraph Leverage["Leverage layers"]
EXP["8 · Experience<br/>reviews · loyalty"]
INT["9 · Intelligence<br/>AI"]
OPS["10 · Operations<br/>admin · moderation · support"]
GRW["12 · Growth<br/>marketing · analytics"]
end
IDN --> EVT
IDN --> VND
EVT --> BKG
MKT --> BKG
VND --> MKT
BKG --> FIN
BKG --> COM
EVT --> COM
BKG --> EXP
EXP --> MKT
INT -.assists.-> EVT & MKT & BKG
OPS -.governs.-> VND & BKG & EXP
PLT -.serves.-> Core & Sides & Leverage
GRW -.measures.-> Core
Reading the map: Identity lets people in. Marketplace helps customers discover what the Vendor domain publishes. Everything a customer does hangs off an Event. Booking converts intent (quotations) into commitments. Financial moves the money, Communication moves the words, Platform carries the infrastructure, and Experience / Intelligence / Operations / Growth make the loop trustworthy, smart, governed, and growing.
1 · Identity Domain¶
Everything related to who a user is and what they may do. Not "customers" or "vendors" — identity. First domain because everything else depends on it.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Registration & login (email, phone OTP, Google, Apple) | MVP | Identity & Auth |
| Email & phone verification | MVP | Identity & Auth |
| Password reset & account recovery | MVP | Identity & Auth |
| Profile management (customer & vendor users) | MVP | Identity & Auth |
| Roles & permissions (Customer, Vendor Owner, Vendor Staff, Admin roles) | MVP | Identity & Auth |
| Sessions & device management | MVP | Identity & Auth |
| Vendor KYC (commercial license verification workflow trigger) | MVP | Vendor Onboarding |
| Two-factor authentication (TOTP) | Scale | Identity & Auth |
| Organizations & team member accounts for vendors | Scale | Vendor Onboarding |
| Biometric login (mobile) | Scale | Identity & Auth |
| Consent & privacy center, data export/erasure | Scale | Identity & Auth |
2 · Event Domain¶
The heart of Yam3at. The Event is the core entity — everything a customer does belongs to an Event. See Event Lifecycle.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Event creation wizard (type, date, city, guests, budget) | MVP | Events & Planner |
| Event types taxonomy (wedding, corporate, يمعة family gathering, …) | MVP | Events & Planner |
| Event dashboard (linked quotations, bookings, payments, messages) | MVP | Events & Planner |
| Event documents & attachments | MVP | Events & Planner |
| Budget tracker (planned vs. quoted vs. committed vs. paid) | Scale | Events & Planner |
| Checklist & task lists (AI-seeded per event type) | Scale | Events & Planner |
| Guest list & RSVP tracking | Scale | Events & Planner |
| Event timeline & milestones | Scale | Events & Planner |
| Event templates & "rebook from previous event" | Scale | Events & Planner |
| Seating planner | Vision | — |
| QR invitations & digital guest check-in | Vision | — |
| Live event-day dashboard | Vision | — |
| Ticketing for public events | Vision | — |
3 · Marketplace Domain¶
Where discovery happens: what customers browse before they know which vendor they want.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Category tree (venues, catering, photography, decoration, …) | MVP | Marketplace & Search |
| Search & filters (city, area, category, budget, rating) | MVP | Marketplace & Search |
| Vendor listing pages (profile, gallery, services, packages) | MVP | Vendor Listings |
| Locations model (country → city → area, Kuwait first) | MVP | Marketplace & Search |
| Featured vendors (subscription benefit) | MVP | Marketplace & Search |
| Availability-date filtering (vendor calendar integration) | Scale | Marketplace & Search |
| Offers, bundles & smart packages | Scale | Vendor Listings |
| Sponsored listings & marketplace ads | Scale | Marketplace & Search |
| AR venue previews & 360° tours | Vision | — |
4 · Vendor Domain¶
Not about discovery — about helping vendors run their business on Yam3at. Subscriptions live here (the money movement is executed by Financial).
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Vendor registration & business profile | MVP | Vendor Onboarding & Subscriptions |
| Commercial license upload & verification (Kuwait requirement) | MVP | Vendor Onboarding & Subscriptions |
| Admin approval workflow | MVP | Vendor Onboarding & Subscriptions |
| Subscription plans: Free / Basic / Professional / Enterprise | MVP | Vendor Onboarding & Subscriptions |
| Service catalog & portfolio/gallery management | MVP | Vendor Listings |
| Vendor dashboard (RFQs, bookings, messages, subscription) | MVP | Vendor Onboarding & Subscriptions |
| Basic vendor analytics (views, RFQs, acceptance rate) | MVP | Vendor Onboarding & Subscriptions |
| Availability calendar, blocked dates, Google Calendar sync | Scale | Vendor Listings |
| Branches & multi-location support | Scale | Vendor Onboarding & Subscriptions |
| Team members with roles | Scale | Vendor Onboarding & Subscriptions |
| Advanced analytics & performance benchmarks | Scale | — |
| Vendor CRM (leads, follow-ups, pipeline) | Vision | — |
5 · Booking Domain¶
Owns the path from intent to commitment. Quotations belong here — not in the Event domain. A quotation is a commercial negotiation; an event is what it serves.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Multi-vendor RFQ creation (from an Event) | MVP | Quotations |
| Vendor quote submission (price, notes, validity, attachments) | MVP | Quotations |
| Quotation states: Draft, Pending, Quoted, Negotiating, Accepted, Rejected, Expired, Cancelled | MVP | Quotations |
| Quote comparison view (side-by-side) | MVP | Quotations |
| Negotiation (counter-offers via messaging thread) | MVP | Quotations |
| Booking creation from accepted quote, with deposit | MVP | Booking |
| Booking states: Pending, Confirmed, Completed, Cancelled, Refund Requested | MVP | Booking |
| Cancellation policies & refund requests | MVP | Booking |
| Instant booking (skip RFQ for fixed-price packages) | Scale | Booking |
| Digital contracts attached to bookings | Scale | Booking |
| Milestone payments & escrow-backed bookings | Vision | — |
6 · Financial Domain¶
Money lives in one place. One payment engine — behind a PSP abstraction (MyFatoorah / Tap) — serves subscriptions, deposits, and refunds alike. KWD amounts use 3 decimal places.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Payment engine: KNET, Visa/Mastercard, Apple Pay, Google Pay | MVP | Payments |
| PSP abstraction layer (MyFatoorah / Tap swappable) | MVP | Payments, Integrations |
| Subscription billing, renewals, invoices | MVP | Payments |
| Booking deposit collection & payment records | MVP | Payments |
| Refund processing (admin-mediated) | MVP | Payments |
| Invoices & payment history (customer and vendor views) | MVP | Payments |
| Platform revenue reports | MVP | Admin & CMS |
| Booking commission (5% of total, captured from the deposit) | MVP | Payments |
| Basic vendor settlement (commission deduction + vendor payout) | MVP | Payments |
| Promo codes & coupons | Scale | — |
| Customer/vendor wallet | Scale | — |
| Multi-currency settlement (KWD → SAR, AED, …) | Scale | — |
| Automated escrow with milestone release, split payments, vendor financing | Vision | — |
7 · Communication Domain¶
Everything involving conversations and notifications. One messaging engine, one notification engine — shared by all user types (Rule 3).
| Module / capability | Phase | SRS coverage |
|---|---|---|
| In-app messaging: customer ↔ vendor, per event/quotation thread | MVP | Messaging & Notifications |
| Attachments in chat (images, PDF) | MVP | Messaging & Notifications |
| Notification engine: email + push (FCM), template-driven | MVP | Messaging & Notifications |
| Notification preferences per channel | MVP | Messaging & Notifications |
| Read receipts & typing indicators | Scale | Messaging & Notifications |
| SMS & WhatsApp notification channels | Scale | — |
| Voice notes in chat | Scale | — |
| Announcements & activity feed | Scale | — |
| Video calls / live consultations | Vision | — |
8 · Experience Domain¶
The often-forgotten layer that makes the marketplace trustworthy and sticky: reputation and retention.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Verified reviews & ratings (post-completion only) | MVP | Reviews |
| Vendor replies to reviews | MVP | Reviews |
| Review moderation & abuse reporting | MVP | Reviews, Admin & CMS |
| Favorites / saved vendors | MVP | Reviews |
| Review photos | Scale | Reviews |
| Referral program | Scale | — |
| Loyalty & rewards | Vision | — |
9 · Intelligence Domain¶
The AI brain. AI is woven into workflows, not bolted on as a chatbot. Entirely post-MVP by design — the MVP gathers the data that makes AI useful.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Vendor recommendations (budget, event type, location, history) | Scale | — |
| AI quote drafting for vendors | Scale | — |
| Search ranking signals | Scale | — |
| AI event planner (suggested checklist, timeline, budget split) | Scale | — |
| Pricing suggestions & demand insights for vendors | Vision | — |
| Conversation summaries for support/disputes | Vision | — |
| AI event designer & assistant | Vision | — |
10 · Operations Domain¶
Everything the business team needs to run the platform.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Admin dashboard (KPIs, pending approvals, activity) | MVP | Admin & CMS |
| Vendor approval queue (license review, approve/reject with reason) | MVP | Admin & CMS |
| User & vendor management (suspend, reactivate) | MVP | Admin & CMS |
| Content moderation (listings, reviews, reported content) | MVP | Admin & CMS |
| Dispute & refund-request handling | MVP | Admin & CMS |
| CMS: static pages, FAQ, banners, terms/privacy | MVP | Admin & CMS |
| Subscription plan administration (pricing, limits) | MVP | Admin & CMS |
| Support ticketing system | Scale | — |
| Fraud detection rules | Scale | — |
| Compliance reporting | Scale | — |
11 · Platform Domain¶
Infrastructure services that every other domain consumes. Invisible when working; catastrophic when missing.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| File & media service (S3-compatible, image processing) | MVP | Architecture Overview |
| Search engine (Meilisearch indexing pipeline) | MVP | Marketplace & Search |
| Localization: Arabic/English, full RTL, translatable content | MVP | Arabic-first & RTL |
| Countries, currencies, timezones model (multi-country ready) | MVP | Tables |
| Audit logs (who did what, when) | MVP | Admin & CMS |
| Feature flags | MVP | Architecture Overview |
| Background jobs & queues (Redis/Horizon) | MVP | Architecture Overview |
| System settings & integrations registry | MVP | Integrations |
| API keys & rate limiting for partners | Vision | — |
| White-label deployment support | Vision | — |
12 · Growth Domain¶
What turns Yam3at from a product into a scalable business.
| Module / capability | Phase | SRS coverage |
|---|---|---|
| Product analytics events (funnels instrumented from day one) | MVP | Marketing Playbook |
| SEO-ready public pages (listings, categories, CMS) | MVP | Marketing Playbook |
| Email campaign integration | Scale | — |
| Promo campaigns & referral mechanics (with Experience/Financial) | Scale | — |
| A/B testing & experiments | Scale | — |
| Affiliate program | Vision | — |
Cross-domain ownership answers¶
Common "where does X live?" questions, answered once:
| Question | Answer |
|---|---|
| Vendor subscriptions? | Vendor owns plans & entitlements; Financial executes billing. |
| Quotations? | Booking — they are commercial negotiation, not event planning. |
| Reviews? | Experience — written about a Booking, displayed by Marketplace. |
| Notifications triggered by a quote? | Communication owns the engine; Booking emits the domain event. |
| Vendor gallery images? | Vendor owns the content; Platform stores the files. |
| Search? | Platform owns the engine; Marketplace owns relevance rules and filters. |
| Dispute over a booking? | Operations owns resolution; Financial executes any refund. |
Next: how the core entity moves through its life — Event Lifecycle.