Page 1 of 25
System Requirements Document for jaipuria-emporium-furniture
1. Introduction
This document specifies the official Jaipuria Emporium Android shopping app — a first-party mobile storefront for the real Jaipuria Emporium furniture business (jaipuriaemporium.com). The product intent is to carry the complete Jaipuria Emporium shopping experience onto Android while representing the brand and its real website catalog accurately: the exact products, images, names, descriptions, prices, categories, and product information available on the Jaipuria Emporium website, kept synchronized with the website wherever possible.
The audience is furniture shoppers across India looking for premium yet affordable seating and decorative furniture — ottomans, suede stools, kid's furniture, dining chairs, benches, chairs and sofas — who want to browse a real manufacturer's catalog, save items, and complete a secure purchase on their phone. The app is a professional furniture e-commerce brand experience: modern, premium, clean and mobile-friendly, with the real product photography as the visual system.
A binding content-integrity rule governs the whole product: no invented, placeholder, fake, or random products, and no invented product descriptions. Every product shown must come from the Jaipuria Emporium website catalog.
Page 2 of 25
2. System Overview
The app is a native Android shopping client backed by a secure backend that holds account, cart, address, checkout, payment, and order state, and that sources product data from the authoritative Jaipuria Emporium website catalog. Shoppers browse the synchronized catalog by category or search, view exact website product details with images, prices and descriptions, add items to the cart, and save items to a wishlist. Account holders sign up or log in, maintain their profile and saved addresses, select a delivery address, apply coupons, choose a payment method, complete a secure checkout, and receive an order confirmation. Order managers track orders, review order history, and initiate cancellation or return requests. Support seekers read notifications, reach contact/support, and read the privacy policy, terms & conditions, and About Jaipuria Emporium information.
Actors are the four accepted personas — Shopper, Buyer / Account Holder, Order Manager, and Support Seeker — plus non-persona actors: the Jaipuria Emporium website catalog source, the payment provider, and the app backend.
Narrow exclusions: the app does not create, invent, or add any random products; it does not use placeholder products, fake products, random furniture, or invented product descriptions; it does not present product descriptions that are not taken from the Jaipuria Emporium website. Product data is synchronized with the website wherever possible rather than being authored in the app.
Page 3 of 25
2a. Product Interpretation and Delivery Boundary
Delivery. The product is an Android application. Catalog browsing, product details, cart, wishlist, account, addresses, checkout, orders, notifications, support and legal information are all delivered as first-party app surfaces. Product data is not authored by the app: it is sourced from the authoritative Jaipuria Emporium website catalog and kept synchronized with the website wherever possible. Account, cart, address, checkout, payment, and order state are held and executed by a secure backend; the app is the human-facing client for that state.
Access ownership. The Home screen, Product categories, Product listing & search, Product details, Product images/gallery, Add to Cart, Cart management, Contact/support, Privacy policy, terms & conditions, and About Jaipuria Emporium are openly reachable without an account. Customer login/signup is the anonymous entry boundary where a customer establishes or verifies their own identity. Profile & account, Saved addresses, Add/Edit/Delete address, Delivery address selection, Order summary, Coupon/discount section, Shipping/delivery details, Payment method selection, Secure payment/checkout screen, Order confirmation, Order tracking, Order history, Cancel/return order section, and Notifications are account-owned and require the customer's own verified identity, because they carry durable, customer-specific state — saved addresses, order commitments, payment outcomes, and order history — that must remain bound to the correct customer and be resumable across sessions. This is identity continuity for the customer's own data, not differentiated roles or permissions: every account holder has the same access to their own account-owned state.
Current vs. future. Everything in this document is current. No future-horizon capabilities are accepted in the source thread.
Page 4 of 25
2b. Source Content Inventory
The following facts are the verified authoritative content from the Jaipuria Emporium website (jaipuriaemporium.com) that the app must represent exactly. No other products may be added.
Navigation categories (exact): Ottoman · Kid's Furniture · Dining Chair · Bench · Chairs · Best Sellers · Sofa
Featured collection (exact names, prices, stock, reviews):
| Product name | Original price | Sale price | Stock status | Reviews |
|---|
| Matterhorn Suede Stool With Black Metallic Stand | Rs. 4,998.00 | Rs. 2,499.00 | Low Stock (17) | 1 review |
| Sky Blue Suede Stool With Black Metallic Stand | Rs. 4,998.00 | Rs. 2,499.00 | In stock (33) | — |
| Slate Grey Suede Stool & Black Metallic Stand | Rs. 5,000.00 | Rs. 2,499.00 | In stock (35) | — |
| Oslo Grey Suede Stool With Black Polished Leg | Rs. 4,998.00 | Rs. 2,499.00 | In stock (37) | — |
| Premium Red Suede Ottoman With Black Polish Leg | Rs. 4,998.00 | Rs. 2,499.00 | In stock (35) | — |
| Sky Blue Print Ottoman With Wooden legs | Rs. 4,998.00 | Rs. 2,499.00 | In stock (40) | — |
| Ship Cove Jute Fabric Ottoman With Polished Legs | Rs. 8,000.00 | Rs. 2,499.00 | Low Stock (20) | — |
| Antique Brass Jute Fabric Ottoman With Polished Legs | Rs. 8,000.00 | Rs. 2,499.00 | In stock (25) | — |
| Turquoise Cotton Velvet Fabric Ottoman With Polished Legs | Rs. 4,998.00 | Rs. 2,499.00 | In stock (25) | — |
| Sunglo Leaf Cotton Velvet Fabric Ottoman With Golden Strip | Rs. 4,998.00 | Rs. 2,499.00 | In stock (27) | — |
Tagged with Reels (exact):
- Cream Bird Emboidery Work Arm Chair With Vintage Legs
- Jack Frost Kid's Rocking Chair With White Deco
- Cello Suede Ottoman With Polished Stand
- Lavendra Suede Parallel Design Stool With Golden Ring
- Mexican Red & Oxford Blue Suede Ottoman With Polished Stand
Promotional text (exact): "Free Shipping Pan India" · "Spend Rs. 1,200 more for FREE shipping." · "Unbeatable Prices" · "Unique Designs" · "Handmade Designs" · "Brand known for Quality" · "We are the biggest manufacturer of the Ottomans, Chairs, Kids Furniture, Office & Residential furniture." · "Shop Now" · Customer testimonials with names and cities.
Brand positioning: biggest manufacturer of the Ottomans, Chairs, Kids Furniture, Office & Residential furniture; unbeatable prices, unique designs, handmade designs; testimonials from real customers emphasizing quality and ease of assembly.
Feature references from the source: actions "Add to cart" and "View details"; indicators "Low Stock" and "In stock"; pricing flow showing original price crossed out with sale price displayed and savings ("Save Rs. X"); free-shipping threshold information; "tagged with reels" video content presence; per-product review counts (e.g. "1 review").
Page 5 of 25
2c. Page Content and Component Coverage
Home screen
- Information/state: mustard marquee band pinned under the status bar carrying the real site copy ("Free Shipping Pan India · Spend Rs. 1,200 more for FREE shipping · Unbeatable Prices · Unique Designs · Handmade Designs"); full-bleed hero with the featured catalog object inside a soft arch; oversized Fraunces headline "Handmade seating, made in India."; brand line "Biggest manufacturer of Ottomans, Chairs & Kids Furniture" as all-caps mustard metadata; live sale line "From Rs. 2,499" with struck "Rs. 4,998"; horizontally scrollable category rail of arch tiles (Ottoman · Kid's Furniture · Dining Chair · Bench · Chairs · Best Sellers · Sofa); "Best Sellers" 2-up card grid; "Tagged with Reels" horizontal film-strip; oversized brand statement paragraph; stacked testimonial quote panels.
- Primary actions: "Shop the catalog" pill button; tap a category arch to open Product categories/listing; tap a product card to open Product details; tap a reel frame to open its Product details; "Add to cart" from cards.
- Supporting actions: scroll the marquee, category rail, best-seller grid, and reel film-strip; open search from the listing entry.
- Domain entities: product, category, featured collection, tagged-with-reels item, promotional copy, testimonial.
- Component responsibilities: marquee band (continuous scroll, reduced-motion wrap), hero arch (layered_2d object, slow reveal), category rail (momentum scroll, press scale 1.02), product card (name wraps to two lines in Fraunces, price tag object, stock dot), reel frame (3:4, mustard play glyph, product name at base), testimonial panel.
- States: loading — skeleton cards on cream ground; empty — no featured items available message with retry; success — full showroom sequence; error — catalog unavailable notice with retry; recovery — retry re-fetches synchronized catalog.
Product categories
- Information/state: the exact navigation categories — Ottoman, Kid's Furniture, Dining Chair, Bench, Chairs, Best Sellers, Sofa — each as an arch tile with its coded flat colour (walnut red for Ottoman, mustard for Best Sellers, teal for Kid's Furniture, oat for the rest) and the category name in Fraunces beneath.
- Primary actions: tap a category to open Product listing & search filtered to that category.
- Supporting actions: horizontally scroll the rail.
- Domain entities: category, category-coded colour.
- Component responsibilities: arch tile (border-radius 50% 50% 12px 12px), category label, rail scroller.
- States: loading — arch placeholders; empty — no categories available message; success — full rail; error — retry notice; recovery — retry re-fetches categories.
Product listing & search
- Information/state: product grid (2-up mobile, 3-up at 768px, 4-up at 1280px) of synchronized website products with exact names, sale price in Fraunces 700 tomato-red, struck original in muted grey, mustard "Save Rs. X" chip, stock indicator ("Low Stock" / "In stock"), review count; sticky filter bar; search field; persistent mustard marquee band.
- Primary actions: search by product name; filter by category; tap a card to open Product details; "Add to cart" from a card.
- Supporting actions: clear search; change filter; scroll results.
- Domain entities: product, category, price, stock status, review count, search query, filter.
- Component responsibilities: search field, sticky filter bar, product card (name wraps, never truncated), price tag object, stock dot, results grid.
- States: loading — grid skeletons; empty — "no products match" with clear-search action; success — results grid; error — catalog unavailable with retry; recovery — retry or clear filters restores results.
Page 6 of 25
Product details
- Information/state: exact website product name (Fraunces, clamp 24px–40px), exact price and product description from the website, sale price with struck original and "Save Rs. X" chip, stock status, review count, and a spec table of ruled label/value rows with 1px walnut hairlines and all-caps 13px labels (e.g. "MATERIAL · SUEDE", "LEG · BLACK POLISHED", "STOCK · IN STOCK (33)", "REVIEWS · 1 REVIEW").
- Primary actions: "Add to Cart"; open Product images/gallery; add to wishlist.
- Supporting actions: swipe gallery; tap gallery thumbs; scroll spec table.
- Domain entities: product, description, price, spec rows, stock, reviews.
- Component responsibilities: full-bleed gallery header, spec table, price tag object, add-to-cart pill, wishlist control.
- States: loading — detail skeleton; empty — product unavailable notice; success — full detail sheet; error — detail fetch failure with retry; recovery — retry re-fetches the exact website record.
Product images/gallery
- Information/state: the exact website product images for the product; swipeable gallery with a film-strip of thumbs; where the site gives no second image, the empty slot shows a flat mustard panel with the product name in Fraunces rather than a fake photo.
- Primary actions: swipe between images; tap a thumb to crossfade (400ms) to that image.
- Supporting actions: return to Product details.
- Domain entities: product image, image order, thumbnail.
- Component responsibilities: gallery pager, thumb film-strip, mustard placeholder panel.
- States: loading — image placeholders on cream; empty — mustard panel with product name; success — full gallery; error — image unavailable placeholder; recovery — retry loads the exact website image.
Add to Cart
- Information/state: the selected product with its exact name, image, sale price, and quantity; confirmation that the item entered the cart.
- Primary actions: confirm add to cart; set quantity; continue shopping or go to Cart management.
- Supporting actions: dismiss confirmation.
- Domain entities: cart line (product, quantity, price).
- Component responsibilities: add-to-cart pill, quantity stepper, confirmation toast/sheet.
- States: loading — pending add indicator; empty — no product selected notice; success — item added confirmation; error — add failed with retry; recovery — retry re-adds the item.
Page 7 of 25
Cart management
- Information/state: all cart lines with exact product names, images, unit sale prices, quantities, line totals; pinned bottom summary bar with subtotal; free-shipping threshold line ("Spend Rs. 1,200 more for FREE shipping.").
- Primary actions: change quantity; remove a line; proceed to checkout (Delivery address selection).
- Supporting actions: continue shopping; view wishlist.
- Domain entities: cart, cart line, quantity, subtotal, shipping threshold.
- Component responsibilities: line item row, quantity stepper, remove control, pinned summary bar.
- States: loading — cart skeletons; empty — empty-cart message with "Shop the catalog" action; success — cart with summary; error — cart sync failure with retry; recovery — retry re-syncs cart from backend.
Customer login/signup
- Information/state: anonymous entry surface for establishing or verifying the customer's own identity; signup fields and login fields; validation messages.
- Primary actions: sign up as a new customer; log in as a returning customer; continue to the protected destination the customer came from.
- Supporting actions: switch between login and signup; recover from a failed attempt.
- Domain entities: customer identity, credentials, session.
- Component responsibilities: signup form, login form, validation display, submit control.
- States: loading — submit in progress; empty — initial form; success — identity established and session started; error — invalid credentials or signup conflict with correction guidance; recovery — retry or switch mode.
Profile & account
- Information/state: the customer's own profile and account information; entry points to Saved addresses, Order history, Notifications, and support/legal pages.
- Primary actions: view and update profile details; open saved addresses; open order history; log out.
- Supporting actions: open notifications; open contact/support; open legal pages.
- Domain entities: customer profile, account.
- Component responsibilities: profile form, account menu, logout control.
- States: loading — profile skeleton; empty — incomplete profile prompt; success — profile displayed; error — profile load/save failure with retry; recovery — retry or re-login.
Page 8 of 25
Saved addresses
- Information/state: the customer's saved delivery addresses with their labels and details.
- Primary actions: open Add/Edit/Delete address to add or edit; delete an address; select an address for delivery.
- Supporting actions: return to profile or checkout.
- Domain entities: address record.
- Component responsibilities: address list, address card, add/edit/delete controls.
- States: loading — address skeletons; empty — no saved addresses with "Add address" action; success — address list; error — address load failure with retry; recovery — retry re-fetches addresses.
Add/Edit/Delete address
- Information/state: address form fields for creating or editing a delivery address; delete confirmation.
- Primary actions: add a new address; edit an existing address; delete an address; save.
- Supporting actions: cancel; return to Saved addresses.
- Domain entities: address record.
- Component responsibilities: address form, save control, delete confirmation dialog.
- States: loading — save in progress; empty — blank form for add; success — address saved or deleted confirmation; error — validation or save failure with correction guidance; recovery — correct fields and retry.
Delivery address selection
- Information/state: the customer's saved addresses presented for selection for this order; the currently selected address.
- Primary actions: select a delivery address; add a new address if none exists; continue to Order summary.
- Supporting actions: edit the selected address.
- Domain entities: address record, order delivery selection.
- Component responsibilities: selectable address list, add-address entry, continue control.
- States: loading — address skeletons; empty — no addresses with add-address action; success — address selected; error — selection/save failure with retry; recovery — retry or add an address.
Page 9 of 25
Order summary
- Information/state: the order's line items with exact product names and prices, quantities, subtotal, applied discount, shipping/delivery details, and total; the selected delivery address.
- Primary actions: review the summary; proceed to payment method selection; return to cart to change items.
- Supporting actions: open Coupon/discount section; open Shipping/delivery details.
- Domain entities: order draft, line item, subtotal, discount, shipping, total.
- Component responsibilities: summary line rows, totals block, address recap, continue control.
- States: loading — summary skeleton; empty — no items notice with return-to-cart action; success — full summary; error — summary computation failure with retry; recovery — retry recomputes the summary.
Coupon/discount section
- Information/state: coupon entry field; applied coupon and its discount; invalid-coupon messaging.
- Primary actions: apply a coupon; remove an applied coupon.
- Supporting actions: return to Order summary.
- Domain entities: coupon, discount.
- Component responsibilities: coupon input, apply/remove control, discount display.
- States: loading — validation in progress; empty — no coupon applied; success — discount applied and reflected in the summary; error — invalid or ineligible coupon message; recovery — correct the code or remove the coupon.
Shipping/delivery details
- Information/state: shipping and delivery information for the order, including the free-shipping threshold state ("Free Shipping Pan India", "Spend Rs. 1,200 more for FREE shipping.") and the delivery address in use.
- Primary actions: review shipping/delivery details; continue to payment method selection.
- Supporting actions: change the delivery address.
- Domain entities: shipping method, delivery detail, address.
- Component responsibilities: shipping detail rows, threshold indicator, continue control.
- States: loading — detail skeleton; empty — no shipping detail available notice; success — shipping details shown; error — shipping detail failure with retry; recovery — retry re-fetches shipping details.
Page 10 of 25
Payment method selection
- Information/state: the available payment methods presented for the order; the currently selected method.
- Primary actions: select a payment method; continue to the Secure payment/checkout screen.
- Supporting actions: return to Order summary.
- Domain entities: payment method, order total.
- Component responsibilities: payment method list, selection control, continue control.
- States: loading — method list skeleton; empty — no payment method available notice; success — method selected; error — method load failure with retry; recovery — retry re-fetches methods.
Secure payment/checkout screen
- Information/state: the order total, the selected payment method, and the secure payment interaction; payment outcome state.
- Primary actions: confirm and pay; complete the secure payment step.
- Supporting actions: cancel payment and return to payment method selection.
- Domain entities: payment, order, transaction outcome.
- Component responsibilities: secure payment surface, total display, confirm control, outcome display.
- States: loading — payment processing; empty — no payment initiated; success — payment authorized and order placed; error — payment declined or failed with retry guidance; recovery — retry payment or choose another method.
Order confirmation
- Information/state: confirmation that the order was placed, with the order's items, total, delivery address, and order reference.
- Primary actions: view the confirmed order; continue to Order tracking or Order history.
- Supporting actions: return to Home screen.
- Domain entities: order, order reference, confirmation.
- Component responsibilities: confirmation panel, order recap, continue controls.
- States: loading — confirmation pending; empty — no order to confirm notice; success — order confirmed; error — confirmation retrieval failure with retry; recovery — retry loads the confirmed order.
Page 11 of 25
Order tracking
- Information/state: the current status and progress of a placed order.
- Primary actions: view the order's tracking status; open the order's details.
- Supporting actions: open Cancel/return order section for that order.
- Domain entities: order, tracking status.
- Component responsibilities: status timeline, order summary header.
- States: loading — tracking skeleton; empty — no active order to track notice; success — tracking status shown; error — tracking fetch failure with retry; recovery — retry re-fetches tracking.
Order history
- Information/state: the customer's past orders with their items, totals, and statuses.
- Primary actions: open an order's tracking; open an order's cancel/return section.
- Supporting actions: return to profile.
- Domain entities: order, order line, order status.
- Component responsibilities: order list, order card, status label.
- States: loading — order skeletons; empty — no orders yet with "Shop the catalog" action; success — order list; error — history fetch failure with retry; recovery — retry re-fetches history.
Cancel/return order section
- Information/state: the selected order and the cancellation or return request being made, with its reason and resulting status.
- Primary actions: initiate a cancellation; initiate a return; submit the request.
- Supporting actions: return to Order history or Order tracking.
- Domain entities: order, cancellation request, return request, request status.
- Component responsibilities: request form, reason selection, submit control, status display.
- States: loading — submission in progress; empty — no eligible order notice; success — request submitted and status updated; error — request rejected or failed with guidance; recovery — correct the request and retry.
Page 12 of 25
Notifications
- Information/state: the customer's notifications relating to their account and orders.
- Primary actions: read a notification; open the related order or section.
- Supporting actions: mark as read; return to profile.
- Domain entities: notification.
- Component responsibilities: notification list, notification item, read control.
- States: loading — notification skeletons; empty — no notifications notice; success — notification list; error — notification fetch failure with retry; recovery — retry re-fetches notifications.
Contact/support
- Information/state: contact and support information for reaching Jaipuria Emporium.
- Primary actions: reach support through the provided contact channel.
- Supporting actions: open legal pages or About Jaipuria Emporium.
- Domain entities: support contact.
- Component responsibilities: contact detail panel, support action control.
- States: loading — contact skeleton; empty — contact unavailable notice; success — contact details shown; error — contact load failure with retry; recovery — retry re-fetches contact details.
Privacy policy, terms & conditions
- Information/state: the privacy policy and terms & conditions content.
- Primary actions: read the privacy policy; read the terms & conditions.
- Supporting actions: switch between the two documents.
- Domain entities: policy document.
- Component responsibilities: document viewer, document switcher.
- States: loading — document skeleton; empty — document unavailable notice; success — document displayed; error — document load failure with retry; recovery — retry re-fetches the document.
Page 13 of 25
About Jaipuria Emporium
- Information/state: information about Jaipuria Emporium, including the brand statement "We are the biggest manufacturer of the Ottomans, Chairs, Kids Furniture, Office & Residential furniture." and brand positioning (unbeatable prices, unique designs, handmade designs).
- Primary actions: read the About information.
- Supporting actions: open contact/support or legal pages.
- Domain entities: brand information.
- Component responsibilities: about content panel.
- States: loading — content skeleton; empty — content unavailable notice; success — about content shown; error — content load failure with retry; recovery — retry re-fetches content.
Page 14 of 25
3. Functional Requirements
FR-1 — Official Android app. As a furniture shopper, I should use the official Jaipuria Emporium Android shopping app so that I can shop the real Jaipuria Emporium catalog on my phone. Provenance: explicit. Trigger: app launch. Observable result: the app opens on the Home screen. Access: none. Failure/recovery: launch failure shows a retry. Continuation: browse the catalog.
FR-2 — Exact website catalog data. As a Shopper, I should see the exact products, images, names, descriptions, prices, categories, and product information available on the Jaipuria Emporium website so that what I buy matches the real store. Provenance: explicit. Trigger: opening any catalog surface. Observable result: product records match the website exactly. Access: none. Failure/recovery: unavailable catalog shows a retry. Continuation: open a product.
FR-3 — No invented products. As a Shopper, I should never see created, invented, random, placeholder, fake, or random-furniture products, or invented product descriptions, so that I can trust the catalog. Provenance: explicit. Trigger: any catalog render. Observable result: only website-sourced products appear. Access: none. Failure/recovery: a product that cannot be verified is not shown. Continuation: browse verified products.
FR-4 — Website synchronization. As a Shopper, I should see product data kept synchronized with the Jaipuria Emporium website wherever possible so that prices, stock, and details stay current. Provenance: explicit. Trigger: catalog fetch. Observable result: displayed data reflects the synchronized website catalog. Access: none. Failure/recovery: sync failure shows the last synchronized data with a retry. Continuation: continue browsing.
FR-5 — Home screen. As a Shopper, I should land on a Home screen that presents the featured catalog, categories, best sellers, tagged-with-reels items, brand statement, and testimonials so that I can start shopping. Provenance: explicit. Trigger: app open. Observable result: the showroom sequence renders. Access: none. Failure/recovery: catalog unavailable shows a retry. Continuation: open a category or product.
FR-6 — Product categories. As a Shopper, I should browse the exact categories — Ottoman, Kid's Furniture, Dining Chair, Bench, Chairs, Best Sellers, Sofa — so that I can find the kind of furniture I want. Provenance: explicit. Trigger: tapping a category tile. Observable result: the listing opens filtered to that category. Access: none. Failure/recovery: category load failure shows a retry. Continuation: open a product.
FR-7 — Product listing & search. As a Shopper, I should list and search products using synchronized website data so that I can find a specific item. Provenance: explicit. Trigger: entering a search query or opening a listing. Observable result: matching products are listed. Access: none. Failure/recovery: no matches shows a clear-search action; fetch failure shows a retry. Continuation: open a product.
FR-8 — Product details with exact website information. As a Shopper, I should view product details carrying the exact website information so that I know precisely what I am buying. Provenance: explicit. Trigger: opening a product. Observable result: exact name, price, description, stock, and reviews are shown. Access: none. Failure/recovery: detail fetch failure shows a retry. Continuation: add to cart or wishlist.
FR-9 — Product images/gallery. As a Shopper, I should view the exact website product images in a gallery so that I can see the real product. Provenance: explicit. Trigger: opening the gallery. Observable result: website images display with a thumb film-strip. Access: none. Failure/recovery: a missing second image shows a flat mustard panel with the product name rather than a fake photo. Continuation: return to details.
FR-10 — Price and product description. As a Shopper, I should see the price and product description from the website, with the sale price and the struck original price and the savings, so that I understand the offer. Provenance: explicit. Trigger: viewing a product. Observable result: sale price in tomato-red, struck original in muted grey, and a "Save Rs. X" chip. Access: none. Failure/recovery: missing price data shows an unavailable notice. Continuation: add to cart.
FR-11 — Add to Cart. As a Shopper, I should add a catalog product to the cart so that I can buy it. Provenance: explicit. Trigger: tapping "Add to Cart". Observable result: the item enters the cart with a confirmation. Access: none. Failure/recovery: add failure shows a retry. Continuation: open Cart management.
FR-12 — Cart management. As a Shopper, I should manage my cart contents — quantities, removals, and totals — so that my order is correct. Provenance: explicit. Trigger: opening the cart. Observable result: cart lines and subtotal update as I change them. Access: none. Failure/recovery: cart sync failure shows a retry. Continuation: proceed to checkout.
FR-13 — Wishlist. As a Shopper, I should save items to a wishlist so that I can return to them later. Provenance: explicit. Trigger: tapping the wishlist control on a product. Observable result: the item is saved to my wishlist. Access: none. Failure/recovery: save failure shows a retry. Continuation: view the wishlist or continue shopping.
FR-14 — Customer signup. As a new customer, I should sign up so that I can own my account, addresses, and orders. Provenance: required_inference. Trigger: choosing signup on Customer login/signup. Observable result: my identity is established and a session starts. Access: anonymous entry. Failure/recovery: signup conflict or validation failure shows correction guidance. Continuation: continue to the destination I came from.
FR-15 — Returning customer verification. As a returning customer, I should log in so that my account, addresses, checkout, notifications, and orders remain bound to me. Provenance: required_inference. Trigger: choosing login on Customer login/signup. Observable result: my identity is verified and my account-owned state is available. Access: anonymous entry. Failure/recovery: invalid credentials show correction guidance and a retry. Continuation: continue to the protected destination.
FR-16 — Profile & account. As a Buyer / Account Holder, I should view and manage my profile and account so that my details are correct. Provenance: explicit. Trigger: opening Profile & account. Observable result: my profile is shown and updates are saved. Access: account-owned. Failure/recovery: load/save failure shows a retry or re-login. Continuation: open addresses, orders, or notifications.
FR-17 — Saved addresses. As a Buyer / Account Holder, I should view my saved delivery addresses so that I can choose where an order goes. Provenance: explicit. Trigger: opening Saved addresses. Observable result: my addresses are listed. Access: account-owned. Failure/recovery: load failure shows a retry. Continuation: add, edit, delete, or select an address.
FR-18 — Add/Edit/Delete address. As a Buyer / Account Holder, I should add, edit, and delete address records so that my delivery addresses stay accurate. Provenance: explicit. Trigger: choosing add, edit, or delete. Observable result: the address record is created, updated, or removed. Access: account-owned. Failure/recovery: validation or save failure shows correction guidance. Continuation: return to Saved addresses.
FR-19 — Delivery address selection. As a Buyer / Account Holder, I should select a delivery address for checkout so that my order ships to the right place. Provenance: explicit. Trigger: choosing an address during checkout. Observable result: the selected address is bound to the order. Access: account-owned. Failure/recovery: no addresses shows an add-address action; selection failure shows a retry. Continuation: continue to Order summary.
FR-20 — Order summary. As a Buyer / Account Holder, I should review the order summary so that I confirm items, quantities, and totals before paying. Provenance: explicit. Trigger: reaching Order summary. Observable result: line items, subtotal, discount, shipping, and total are shown. Access: account-owned. Failure/recovery: computation failure shows a retry. Continuation: proceed to payment.
FR-21 — Coupon/discount section. As a Buyer / Account Holder, I should apply a coupon or discount so that my order reflects the offer. Provenance: explicit. Trigger: entering a coupon code. Observable result: the discount is applied and reflected in the summary. Access: account-owned. Failure/recovery: invalid or ineligible coupon shows a message and allows correction or removal. Continuation: continue to payment.
FR-22 — Shipping/delivery details. As a Buyer / Account Holder, I should review shipping and delivery details, including the free-shipping threshold state, so that I know how and when my order arrives. Provenance: explicit. Trigger: opening Shipping/delivery details. Observable result: shipping and delivery information is shown. Access: account-owned. Failure/recovery: detail failure shows a retry. Continuation: continue to payment.
FR-23 — Payment method selection. As a Buyer / Account Holder, I should select a payment method so that I can pay the way I prefer. Provenance: explicit. Trigger: opening Payment method selection. Observable result: the chosen method is selected for the order. Access: account-owned. Failure/recovery: method load failure shows a retry. Continuation: continue to the secure payment screen.
FR-24 — Secure payment/checkout screen. As a Buyer / Account Holder, I should complete a secure payment and checkout so that my order is placed safely. Provenance: explicit. Trigger: confirming payment. Observable result: payment is authorized and the order is placed. Access: account-owned. Failure/recovery: declined or failed payment shows retry guidance or another method. Continuation: continue to Order confirmation.
FR-25 — Order confirmation. As a Buyer / Account Holder, I should receive an order confirmation so that I know my order was placed. Provenance: explicit. Trigger: successful payment. Observable result: the confirmed order with items, total, address, and reference is shown. Access: account-owned. Failure/recovery: confirmation retrieval failure shows a retry. Continuation: track the order or open order history.
FR-26 — Order tracking. As an Order Manager, I should track an order's status so that I know where it is. Provenance: explicit. Trigger: opening Order tracking. Observable result: the order's current status and progress are shown. Access: account-owned. Failure/recovery: tracking fetch failure shows a retry. Continuation: open the order's cancel/return section.
FR-27 — Order history. As an Order Manager, I should review my order history so that I can revisit past orders. Provenance: explicit. Trigger: opening Order history. Observable result: past orders with items, totals, and statuses are listed. Access: account-owned. Failure/recovery: history fetch failure shows a retry. Continuation: open an order's tracking or cancel/return section.
FR-28 — Cancel/return order section. As an Order Manager, I should initiate a cancellation or return so that I can resolve an order I no longer want. Provenance: explicit. Trigger: choosing cancel or return for an order. Observable result: the request is submitted and the order's status updates. Access: account-owned. Failure/recovery: rejected or failed request shows guidance and a retry. Continuation: return to Order history or Order tracking.
FR-29 — Notifications. As a Support Seeker, I should receive and read notifications so that I stay informed about my account and orders. Provenance: explicit. Trigger: opening Notifications. Observable result: my notifications are listed and readable. Access: account-owned. Failure/recovery: fetch failure shows a retry. Continuation: open the related order or section.
FR-30 — Contact/support. As a Support Seeker, I should reach contact and support so that I can get help. Provenance: explicit. Trigger: opening Contact/support. Observable result: contact and support information is shown and reachable. Access: none. Failure/recovery: load failure shows a retry. Continuation: contact support or open legal pages.
FR-31 — Privacy policy, terms & conditions. As a Support Seeker, I should read the privacy policy and terms & conditions so that I understand the terms of use. Provenance: explicit. Trigger: opening the legal page. Observable result: the privacy policy and terms & conditions are displayed. Access: none. Failure/recovery: load failure shows a retry. Continuation: switch documents or return.
FR-32 — About Jaipuria Emporium. As a Support Seeker, I should read About Jaipuria Emporium so that I understand the brand. Provenance: explicit. Trigger: opening About Jaipuria Emporium. Observable result: brand information, including the manufacturer statement, is shown. Access: none. Failure/recovery: load failure shows a retry. Continuation: open contact/support or legal pages.
FR-33 — Premium mobile UI. As a Shopper, I should use a modern, premium, clean, mobile-friendly interface suitable for a professional furniture e-commerce brand so that shopping feels like a furniture showroom. Provenance: explicit. Trigger: any screen. Observable result: the warm-modernism showroom presentation renders with readable text and controls whole at every viewport. Access: none. Failure/recovery: layout failure falls back to a readable single column. Continuation: continue shopping.
FR-34 — Catalog synchronization before display. As a Shopper, I should have the authoritative Jaipuria Emporium website catalog data synchronized before products are displayed so that I never see stale or invented data. Provenance: required_inference. Trigger: catalog fetch. Observable result: only synchronized website records render. Access: none. Failure/recovery: sync failure shows the last synchronized data with a retry. Continuation: continue browsing.
FR-35 — Secure backend execution. As a Buyer / Account Holder, I should have my account, cart, address, checkout, payment, and order state executed and held securely by the backend so that my data and commitments are safe and resumable. Provenance: required_inference. Trigger: any account-owned action. Observable result: state persists correctly and is bound to my identity. Access: account-owned. Failure/recovery: backend failure shows a retry without losing my input. Continuation: retry the action.
Page 15 of 25
4. User Personas
Shopper
The Shopper is the discovery-side actor: someone furnishing a home across India who arrives without an account and wants to see real Jaipuria Emporium furniture — suede stools, jute ottomans, embroidered armchairs, kid's rocking chairs, dining chairs, benches and sofas — at accessible prices (Rs. 2,499 sale against Rs. 4,998 list). Their product context is the synchronized website catalog; their primary goal is to find the right furniture product and get it into the cart. Their distinct accepted responsibilities are browsing the Home screen showroom sequence, moving through the exact categories (Ottoman, Kid's Furniture, Dining Chair, Bench, Chairs, Best Sellers, Sofa), listing and searching products, opening product details with exact website information, viewing the product images/gallery, reading price and product description, adding to cart, managing the cart, and saving items to a wishlist. Their inputs and decisions are the search query, the category they pick, and whether a product is worth adding or saving. They interact with the Buyer / Account Holder only by handing off at checkout, where identity becomes necessary. Their observable success is finding the right product and seeing it confirmed in the cart or wishlist.
Page 16 of 25
Buyer / Account Holder
The Buyer / Account Holder is the purchasing actor: a customer who has established their own identity and now owns durable, customer-specific state. Their product context is their own account — profile, saved addresses, cart, coupons, payment, and orders. Their primary goal is to place and confirm an order. Their distinct accepted responsibilities are signing up or logging in, maintaining their profile and account, viewing saved addresses, adding/editing/deleting address records, selecting a delivery address, reviewing the order summary, applying coupons or discounts, reviewing shipping/delivery details, selecting a payment method, completing the secure payment/checkout screen, and receiving order confirmation. Their inputs and decisions are their address details, coupon codes, payment method, and the final commitment to pay. They interact with the Shopper by receiving the cart handoff, and with the Order Manager by producing the confirmed order that the Order Manager later tracks and can cancel or return. Their observable success is a placed and confirmed order.
Order Manager
The Order Manager is the post-purchase actor: the same customer acting on orders already placed. Their product context is their order history and the live status of each order. Their primary goal is to follow an order's status and resolve a cancellation or return. Their distinct accepted responsibilities are tracking orders, reviewing order history, and initiating cancellation or return requests. Their inputs and decisions are which order to inspect and whether to cancel or return it, and the reason for that request. They interact with the Buyer / Account Holder by acting on the orders that persona placed, and with the Support Seeker when an order issue needs support. Their observable success is being able to follow an order's status and see a cancellation or return resolved.
Page 17 of 25
Support Seeker
The Support Seeker is the help-and-information actor: a customer or visitor who needs assistance or policy information. Their product context is notifications, support channels, and the brand's legal and about information. Their primary goal is to reach support or the needed policy information. Their distinct accepted responsibilities are reading notifications, using the contact/support section, and reading the privacy policy, terms & conditions, and About Jaipuria Emporium information. Their inputs and decisions are which notification to open and which support or policy resource they need. They interact with the Order Manager when a notification concerns an order, and with the brand through the support channel. Their observable success is reaching support or the needed policy information.
5. Core User Flows
Flow 1 — Shopper discovers and saves furniture (Shopper)
- The Shopper opens the app and lands on the Home screen; the mustard marquee band scrolls the real site copy and the hero shows the featured catalog object inside its arch with the headline "Handmade seating, made in India." and the live sale line "From Rs. 2,499" against the struck "Rs. 4,998".
- The Shopper scrolls the arch-shaped category rail (Ottoman · Kid's Furniture · Dining Chair · Bench · Chairs · Best Sellers · Sofa) and taps Ottoman.
- The Product listing & search opens filtered to Ottoman, showing synchronized website products with exact names, sale prices in tomato-red, struck originals, "Save Rs. X" chips, and stock indicators.
- The Shopper taps Matterhorn Suede Stool With Black Metallic Stand and opens Product details, which shows the exact website name, price, description, "Low Stock (17)", "1 review", and the ruled spec table.
- The Shopper opens Product images/gallery, swipes the website images, and taps a thumb to crossfade to that image.
- The Shopper taps the wishlist control; the item is saved to the wishlist and a confirmation appears.
- Failure/recovery: if the catalog fetch fails, the listing shows a retry; the Shopper retries and the synchronized results return.
- Continuation: the Shopper returns to the listing and continues browsing, or adds the item to the cart.
Page 18 of 25
Flow 2 — Shopper searches and adds to cart (Shopper)
- From the Home screen, the Shopper opens Product listing & search and types a product name into the search field.
- Matching synchronized website products are listed; if nothing matches, an empty state offers a clear-search action.
- The Shopper taps a result to open Product details and confirms the exact website price and description.
- The Shopper taps Add to Cart, sets the quantity, and sees the item-added confirmation.
- The Shopper opens Cart management, adjusts the quantity, and sees the subtotal and the free-shipping threshold line ("Spend Rs. 1,200 more for FREE shipping.") update.
- Failure/recovery: if the cart sync fails, a retry is offered and the cart re-syncs from the backend.
- Continuation: the Shopper proceeds to checkout, where identity becomes necessary.
Flow 3 — New customer signs up and places an order (Buyer / Account Holder)
- From Cart management, the Shopper proceeds to checkout and reaches the anonymous Customer login/signup boundary.
- The customer chooses signup, enters their details, and submits; their identity is established and a session starts.
- Failure/recovery: if signup conflicts or validation fails, correction guidance is shown and the customer retries.
- The customer opens Saved addresses, finds none, and opens Add/Edit/Delete address to add a delivery address; the address is saved.
- On Delivery address selection, the customer selects that address for the order.
- On Order summary, the customer reviews line items, subtotal, discount, shipping, and total.
- The customer opens Coupon/discount section, applies a coupon, and sees the discount reflected in the summary; an invalid code shows a message and allows correction or removal.
- The customer reviews Shipping/delivery details, including the free-shipping threshold state.
- On Payment method selection, the customer selects a payment method.
- On the Secure payment/checkout screen, the customer confirms and pays; payment is authorized and the order is placed.
- Failure/recovery: if payment is declined, retry guidance is shown and the customer retries or chooses another method.
- On Order confirmation, the customer sees the confirmed order with items, total, address, and reference.
- Continuation: the customer continues to Order tracking or Order history.
Page 19 of 25
Flow 4 — Returning customer logs in and checks out (Buyer / Account Holder)
- The returning customer opens Customer login/signup and logs in; their identity is verified and their account-owned state becomes available.
- Failure/recovery: invalid credentials show correction guidance and a retry.
- The customer opens Cart management and confirms the items carried over.
- On Delivery address selection, the customer picks one of their Saved addresses.
- The customer reviews Order summary, applies a coupon in Coupon/discount section, and reviews Shipping/delivery details.
- The customer selects a method on Payment method selection and completes the Secure payment/checkout screen.
- On Order confirmation, the order is confirmed.
- Continuation: the customer opens Order tracking.
Flow 5 — Customer maintains profile and addresses (Buyer / Account Holder)
- The customer opens Profile & account and views their profile.
- The customer updates profile details and saves; a save failure shows a retry.
- The customer opens Saved addresses and sees their address list.
- The customer opens Add/Edit/Delete address, edits an address, and saves; validation failure shows correction guidance.
- The customer deletes an address and confirms the deletion.
- Continuation: the customer returns to Saved addresses or Profile & account.
Flow 6 — Order Manager tracks an order (Order Manager)
- The Order Manager opens Order history and sees past orders with items, totals, and statuses.
- The Order Manager opens an order's Order tracking and sees its current status and progress.
- Failure/recovery: if tracking fetch fails, a retry is offered and the status reloads.
- Continuation: the Order Manager opens the order's Cancel/return order section or returns to history.
Page 20 of 25
Flow 7 — Order Manager cancels or returns an order (Order Manager)
- From Order history or Order tracking, the Order Manager opens Cancel/return order section for an eligible order.
- The Order Manager chooses cancellation or return, selects a reason, and submits the request.
- The request is submitted and the order's status updates.
- Failure/recovery: if the request is rejected or fails, guidance is shown and the Order Manager corrects and retries.
- Continuation: the Order Manager returns to Order history or Order tracking to follow the updated status.
Flow 8 — Support Seeker reads notifications and reaches support (Support Seeker)
- The Support Seeker opens Notifications and reads a notification about an order.
- Failure/recovery: if the notification fetch fails, a retry is offered.
- The Support Seeker opens the related order or section from the notification.
- The Support Seeker opens Contact/support and reaches support through the provided channel.
- Continuation: the Support Seeker opens Privacy policy, terms & conditions or About Jaipuria Emporium.
Flow 9 — Support Seeker reads policy and brand information (Support Seeker)
- The Support Seeker opens Privacy policy, terms & conditions and reads the privacy policy.
- The Support Seeker switches to the terms & conditions document.
- Failure/recovery: if the document fails to load, a retry is offered.
- The Support Seeker opens About Jaipuria Emporium and reads the brand information, including "We are the biggest manufacturer of the Ottomans, Chairs, Kids Furniture, Office & Residential furniture."
- Continuation: the Support Seeker opens Contact/support or returns to the Home screen.
Page 21 of 25
6. Visuals Colors and Theme
The creative direction is authoritative for this section. Muse: Charles & Ray Eames. Headline: Warm modernism for handmade Indian furniture — walnut, mustard and velvet on cream. The register is warm, tactile, home-making and proud-of-craft: a furniture showroom, not a tech product, not luxury-aloof, not discount-retail noise. The real Jaipuria Emporium product photography is the entire visual system.
Palette (light mode):
- Background / cream paper ground:
#F4EDE1
- Surface (cards and sheets, oat):
#FBF6EC
- Text (ink-walnut):
#2A211A
- Primary (tomato/walnut red — Add to Cart, active tab, price strike-through rule):
#8C3A26
- Accent (mustard — sale badges, "Save Rs. X" chips, stock dots, marquee band):
#D9932C
- Muted (walnut-grey — metadata, labels, disabled states, struck original prices):
#7A6A57
- Third coded category colour (teal, category rail only):
#2F6B62
No blue, indigo or violet anywhere; no gradients. Sale prices always sit in #8C3A26 with the struck original in #7A6A57. Pure white #FFFFFF is never the page ground.
Typography:
- Headings: Fraunces at 600–700 with a slight optical-size bump; sentence-case, tracking -1%, leading 0.95, set large. Numerals in prices use Fraunces 700 so "Rs. 2,499" reads as a price tag.
- Body: Work Sans.
- Scale: 1.333 modular — 56 / 42 / 32 / 24 / 18 / 16 / 13. Mobile display 34px → desktop 56px for the hero; product-detail product name
clamp(24px, 5vw, 40px); section titles 24/32; price 22/28; body 16/17; metadata 13 all-caps with 0.08em tracking.
Shape language: Organic-modern — 20px corner radii on cards and sheets; 999px pill on the mustard marquee band and on "Add to Cart"; one recurring Eames gesture, a soft asymmetric arch (border-radius: 50% 50% 12px 12px) behind the home hero product and behind category tiles. Hard 0px corners only on the thin walnut rules separating data rows. Buttons are chunky and tactile with a 2px ink outline and a 3px hard offset shadow in #2A211A — mid-century print, not Material elevation.
Spacing rhythm: generous, gallery-like; single column on mobile with generous vertical breathing room between showroom sections; 1px walnut hairlines instead of shadows.
Imagery style: the real Jaipuria Emporium product photography only — suede stools, jute ottomans, embroidered armchairs, kid's rocking chairs, shot on plain grounds. No stock people, no lifestyle filler, no illustration, no invented renders. Backgrounds behind products are always #F4EDE1 or #FBF6EC so the catalog reads as one continuous shoot. Where a product has no second image, the empty slot shows a flat mustard panel with the product name in Fraunces rather than a fake photo.
Page 22 of 25
7. Signature Design Concept
The Cream Poster Showroom. The Home screen's first frame is a poster, not a SaaS hero. A cream #F4EDE1 field carries a mustard #D9932C marquee band across the very top, scrolling the real site copy ("Free Shipping Pan India · Spend Rs. 1,200 more for FREE shipping · Unbeatable Prices · Unique Designs · Handmade Designs") in 13px all-caps with 0.08em tracking. Beneath it, a full-bleed product object from the real catalog — the featured ottoman or stool — sits inside a large soft arch (border-radius: 50% 50% 12px 12px) that bleeds off the right edge at 1280px and fills the width at 375px. Overlapping the arch on the left is an oversized Fraunces headline in ink-walnut, "Handmade seating, made in India.", set at 34px on mobile to 56px on desktop, with the brand line "Biggest manufacturer of Ottomans, Chairs & Kids Furniture" as 13px all-caps mustard metadata above it. Pinned under the headline is a single tomato-red pill button, "Shop the catalog", and next to it the live sale line "From Rs. 2,499" in Fraunces 700 with the struck "Rs. 4,998" in muted grey. Type left, object right, colour blocks doing the framing — no centred stack, no gradient blob, no blue button. The concept only recomposes accepted content, states and controls.
Page 23 of 25
8. Interaction Model & Motion Direction
Interaction Model: Animated
Motion Tempo: restrained
Hero Dimensionality: layered_2d
Landing Hero Motion Brief. Focal subject: the featured real-catalog ottoman or stool from the Jaipuria Emporium website, sitting inside the soft arch. Input → transformation → outcome thesis: as the Home screen settles, the hero object rises 24px and fades in over 600ms with cubic-bezier(0.22, 0.61, 0.36, 1), resolving into the composed poster frame with the headline, brand metadata, "Shop the catalog" pill, and the live sale line already in place. Motion vocabulary: one slow reveal per screen; the mustard marquee band scrolls continuously at 40s per loop; the category rail scrolls with momentum and its arch tiles gently scale to 1.02 on press; product images crossfade over 400ms when a gallery thumb is tapped. Nothing bounces, nothing parallaxes on scroll, no particles. Composed first frame: cream ground, mustard marquee band pinned under the status bar, arch-bleeding product object, oversized Fraunces headline left, tomato pill and sale line beneath. Reduced-motion state: the marquee stops and wraps into two static centred lines, and all reveals become instant.
Page 24 of 25
9. Non-Functional Requirements
- NFR-1 — Content integrity (explicit). Product data must come from the Jaipuria Emporium website; no invented, placeholder, fake, or random products or descriptions. Rationale: the app must accurately represent Jaipuria Emporium and its real website catalog.
- NFR-2 — Catalog synchronization (explicit). Product data should be kept synchronized with the website wherever possible. Rationale: prices, stock, and details must stay current.
- NFR-3 — Android platform (explicit). The product is an Android application. Rationale: explicit platform constraint.
- NFR-4 — Premium mobile UI (explicit). The UI must be modern, premium, clean, mobile-friendly, and suitable for a professional furniture e-commerce brand. Rationale: explicit presentation constraint.
- NFR-5 — Readable text and controls at every viewport (explicit). Headlines, wordmarks, labels, numbers, cards' text and controls stay entirely inside the viewport and their container at 375px, 768px and 1280px, wrapping or scaling (for example
font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Moving and scrollable content may cross the edge by design but must show whole items under reduced motion. Rationale: explicit readability constraint.
- NFR-6 — Secure state handling (required_inference). Account, cart, address, checkout, payment, and order state must be executed and held securely by the backend and bound to the correct customer. Rationale: indispensable for durable, customer-specific commitments and value transfer.
- NFR-7 — Reduced-motion support (explicit). With
prefers-reduced-motion, the marquee stops and wraps into two static lines and all reveals become instant. Rationale: explicit motion constraint.
10. Tech Stack
- Client: React Native Android application (native Android delivery of the shopping experience). [Default — not specified by user]
- Backend: Python / FastAPI service holding account, cart, address, checkout, payment, and order state, and sourcing synchronized product data from the Jaipuria Emporium website catalog. [Default — not specified by user]
- Storage: appropriate persistent storage for customer accounts, addresses, carts, orders, and the synchronized catalog. [Default — not specified by user]
- Packaging/deployment: Docker / docker-compose for the backend service. [Default — not specified by user]
- Payments: payment provider integration for the secure payment/checkout screen. [Default — not specified by user]
Page 25 of 25
11. Assumptions and Constraints
- A-1 (explicit): The app is an Android application.
- A-2 (explicit): Product data is sourced from the Jaipuria Emporium website and kept synchronized with the website wherever possible; the app does not author product data.
- A-3 (explicit): No invented, placeholder, fake, or random products, and no invented product descriptions, may appear.
- A-4 (explicit): The UI is modern, premium, clean, mobile-friendly, and suitable for a professional furniture e-commerce brand.
- A-5 (required_inference): Customer self-service signup and returning-customer verification are prerequisites for account-owned shopping continuity and checkout; the entry interaction is anonymous and only account-owned destinations are protected.
- A-6 (required_inference): A secure backend executes and holds account, cart, address, checkout, payment, and order state.
- A-7 (required_inference): Authoritative Jaipuria Emporium website catalog data is synchronized before products are displayed.
- A-8 (default): React Native, Python/FastAPI, appropriate storage, and Docker/docker-compose are used as the implementation stack; these are defaults, not user-specified product behavior.
- A-9 (constraint): The generic indigo/blue-on-white SaaS template is forbidden; no blue, indigo or violet accents, and no gradients, appear anywhere.
12. Glossary
- Jaipuria Emporium website — the authoritative source (jaipuriaemporium.com) for the exact products, images, names, descriptions, prices, categories, and product information.
- Synchronized catalog — the app's product data kept consistent with the Jaipuria Emporium website wherever possible.
- Featured collection — the exact set of products observed on the website's featured listing, with their original prices, sale prices, stock statuses, and review counts.
- Tagged with Reels — the exact set of website products tagged with reels, presented as a horizontal film-strip.
- Stock status — the website's per-product indicator, "Low Stock (n)" or "In stock (n)".
- Save Rs. X chip — the mustard savings chip showing the difference between the struck original price and the sale price.
- Spec table — the ruled label/value data sheet on Product details presenting exact website information (e.g. MATERIAL · SUEDE, LEG · BLACK POLISHED, STOCK · IN STOCK (33), REVIEWS · 1 REVIEW).
- Account-owned state — durable, customer-specific state (profile, saved addresses, cart, orders, notifications) bound to the customer's own verified identity.
- Order Manager — the accepted persona who tracks orders, reviews order history, and initiates cancellation or return requests.
- Support Seeker — the accepted persona who reads notifications, reaches contact/support, and reads the privacy policy, terms & conditions, and About Jaipuria Emporium information.
No comments yet. Be the first!