bold-quotation

bymurilo m

quotation software

Landing
Landing

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirements Document for bold-quotation

1. Introduction

bold-quotation is quotation software for a big company. Its sales team handles many quotes at once: sales representatives build quotes with line items and pricing for clients, send them out, and track each one's status; sales managers oversee the team's pipeline of quotes and their outcomes to keep deals moving; and clients receive a quote through a shareable link and accept or reject it directly, without an account.

The product's intent is to turn the everyday artifacts of quoting — line items, totals, statuses, the shareable link — into a fast, legible, high-volume sales machine with a distinct point of view. The audience is a large company's sales organization (representatives and managers) and the external clients who respond to its quotes.

Page 1 of 29

2. System Overview

bold-quotation is a first-party web application with an application-owned backend. It delivers:

  • Anonymous public entry — a Landing page that explains the product to the sales team before sign-in.
  • Application-owned identity — self-service Sign Up for sales team members and Login for returning sales representatives and sales managers. Identity is required so that quote records, their statuses, and their outcomes remain bound to the correct team member and can be resumed across sessions.
  • Quote authoring and sending — sales representatives create quotes (New Quote), browse them with their current statuses (Quotes), and open a single quote (Quote Details) to send it to the client and obtain the shareable link.
  • Client decision without an account — the Client / quote recipient opens the Quote Link and accepts or rejects the quote directly, completing the quote's outcome.
  • Team oversight — the sales manager reviews the team's many quotes and their outcomes on the Pipeline.

Actors: Sales representative, Sales manager (application-owned identity, role-restricted working surfaces), and Client / quote recipient (link access, no account). The backend owns quote records, line items, pricing totals, statuses, shareable links, and the recorded client decision.

Removed from scope

  • None. No concept was explicitly removed by the user.
Page 2 of 29

2a. Product Interpretation and Delivery Boundary

bold-quotation is delivered as a first-party web application with its own backend. Sales team members establish identity through self-service Sign Up and return through Login; their quote records, statuses, and outcomes are durable and application-owned, so work can be resumed across sessions. The Landing page is anonymously reachable and explains the product before sign-in. The client's side of the lifecycle is deliberately account-free: the Client / quote recipient reaches the quote only through the shareable link produced by the sales representative and records an accept or reject decision there. No client account, client dashboard, or client history is part of the current product. No future-horizon requirements were stated by the user.

2c. Page Content and Component Coverage

Page 3 of 29

Landing

  • Information/state: Anonymous public entry. Explains that bold-quotation is quotation software for a big company's sales team, who it is for (sales representatives, sales managers, and the clients who receive quotes), and what it does (create and send quotes; clients accept or reject from a link; the team tracks many quotes and their outcomes).
  • Primary actions: Go to Sign Up ("START A QUOTE" primary CTA); go to Login for returning team members.
  • Supporting actions: Navigate to the client-facing explanation of the shareable link (informational only; the Quote Link itself is reached from a sent quote's link).
  • Domain entities: None persisted; presents product concepts (quote, status, shareable link).
  • Component responsibilities: Oversized quoted headline block; garment-tag label; hazard-stripe band carrying the primary CTA; photographed quote document with crop-marks; live status ticker of quote statuses (pausable; wraps into rows under reduced motion).
  • States: Loading (static content, no data dependency); empty (not applicable); success (navigation to Sign Up or Login); error (not applicable beyond navigation); recovery (links remain available at all viewports).
Page 4 of 29

Login

  • Information/state: Returning verification for sales representatives and sales managers. Anonymous access; on success the actor enters the role-appropriate working surfaces.
  • Primary actions: Submit credentials to sign in.
  • Supporting actions: Navigate to Sign Up if not yet enrolled; return to Landing.
  • Domain entities: Team member identity (email/credential), role (sales representative or sales manager).
  • Component responsibilities: Credential form; inline validation; error messaging; link to Sign Up.
  • States: Loading (submitting); empty (blank form); success (session established, redirect to Quotes for representatives or Pipeline for managers); error (invalid credentials — message shown, form retained); recovery (retry; navigate to Sign Up).
Page 5 of 29

Sign Up

  • Information/state: Self-service first-use enrollment for sales team members who independently begin using the quotation software. Anonymous access.
  • Primary actions: Create an account with the required identity details and role selection (sales representative or sales manager).
  • Supporting actions: Navigate to Login; return to Landing.
  • Domain entities: Team member identity, role.
  • Component responsibilities: Enrollment form; validation; duplicate-identity error; success confirmation leading into the signed-in surfaces.
  • States: Loading (submitting); empty (blank form); success (account created, session established, entry into role-appropriate surface); error (validation failure or identity already enrolled — message shown, entered values retained); recovery (correct and resubmit, or go to Login).
Page 6 of 29

Quote Link

  • Information/state: Client-facing destination reached from a shareable link. No account required. Shows the quote's contents — client, line items, pricing totals, and current status — and the accept/reject decision controls. Once a decision is recorded, the page reflects the resulting status.
  • Primary actions: Accept the quote (ink button); Reject the quote (outlined button).
  • Supporting actions: Review line items and totals before deciding.
  • Domain entities: Quote, line items, pricing totals, status, recorded client decision.
  • Component responsibilities: Single centred document card with crop-marks; line-item table with tabular numerals; totals; Accept/Reject pair; status display after decision; invalid-or-expired-link message.
  • States: Loading (fetching quote by link); empty (link does not resolve to a quote — clear message); success (quote displayed; after decision, status shown as accepted or rejected); error (link invalid or quote unavailable — message with no decision controls); recovery (reload; contact the sender via the details shown on the quote).
Page 7 of 29

Quotes

  • Information/state: Role-restricted to signed-in sales representatives. Lists the representative's quotes with their current statuses. Dense tabular grid with sticky column headers and right-aligned tabular numerals for prices.
  • Primary actions: Open a quote (to Quote Details); start a new quote (to New Quote).
  • Supporting actions: Scan statuses; use the live status ticker in the header.
  • Domain entities: Quote, status, client, total value, dates.
  • Component responsibilities: Sticky-header table; status chips; ticker; persistent left rail with quoted nav labels; empty-state prompt to create the first quote.
  • States: Loading (fetching list); empty (no quotes yet — prompt to start a quote); success (rows with statuses); error (list failed to load — retry); recovery (retry; navigate to New Quote).
Page 8 of 29

New Quote

  • Information/state: Role-restricted to signed-in sales representatives. Focused create surface for building a quote with line items and pricing for a client.
  • Primary actions: Add line items (description, quantity, unit price); enter client details; save the quote.
  • Supporting actions: Remove or edit a line item; review the computed total; cancel and return to Quotes.
  • Domain entities: Quote, client, line items, quantities, unit prices, computed totals.
  • Component responsibilities: Client fields; line-item editor; tabular-numeral totals; save control; validation messaging.
  • States: Loading (saving); empty (no line items yet); success (quote saved and appears in Quotes; navigate to Quote Details); error (validation failure — messages shown, entered data retained); recovery (correct and resave; cancel without saving).
Page 9 of 29

Quote Details

  • Information/state: Role-restricted to signed-in sales representatives. Focused view of a single quote: client, line items, totals, current status, and the shareable link once sent.
  • Primary actions: Send the quote to the client; obtain and copy the shareable link.
  • Supporting actions: Review line items and totals; return to Quotes; revisit the quote to see the client's recorded decision.
  • Domain entities: Quote, client, line items, totals, status, shareable link, recorded client decision.
  • Component responsibilities: Quote document card with crop-marks and garment-tag status label; send control; link display with copy action; status chip that flips on state change.
  • States: Loading (fetching quote); empty (quote not found — message and return to Quotes); success (quote displayed; after send, link shown and status becomes sent; after client decision, status shows accepted or rejected); error (send failed — message, retry); recovery (retry send; copy link again).
Page 10 of 29

Pipeline

  • Information/state: Role-restricted to signed-in sales managers. Overview of the team's many quotes and their outcomes to keep deals moving. Dense tabular grid with sticky column headers and right-aligned tabular numerals.
  • Primary actions: Review quotes and their statuses across the team.
  • Supporting actions: Scan the live status ticker; read status chips and metadata.
  • Domain entities: Quote, status, client, representative, total value, dates.
  • Component responsibilities: Sticky-header table; status chips; ticker; persistent left rail with quoted nav labels; empty state when the team has no quotes.
  • States: Loading (fetching pipeline); empty (no quotes in the team pipeline — explanatory message); success (rows with statuses and outcomes); error (load failed — retry); recovery (retry).
Page 11 of 29

3. Functional Requirements

FR-1 — Create a quote (explicit) As a Sales representative, I should build a quote with line items and pricing for a client, so that I can send a priced offer.

  • Trigger/input: signed-in representative opens New Quote, enters client details and one or more line items (description, quantity, unit price).
  • Observable result: the quote is saved with computed totals and appears in Quotes with an initial status.
  • Access: role-restricted to signed-in sales representatives.
  • Failure/recovery: validation errors are shown inline with entered data retained; the representative corrects and resaves or cancels.
  • Continuation: on save, the representative proceeds to Quote Details to send it.

FR-2 — Browse quotes and statuses (explicit) As a Sales representative, I should view the list of my quotes and their current statuses, so that I know which quotes need attention.

  • Trigger/input: signed-in representative opens Quotes.
  • Observable result: a tabular list of quotes with statuses and totals.
  • Access: role-restricted to signed-in sales representatives.
  • Failure/recovery: if the list fails to load, a retry is offered.
  • Continuation: open a quote in Quote Details or start a new quote.
Page 12 of 29

FR-3 — Send a quote and obtain the shareable link (explicit) As a Sales representative, I should send a quote to the client and obtain the shareable link, so that the client can respond.

  • Trigger/input: representative opens Quote Details for a saved quote and sends it.
  • Observable result: the quote's status becomes sent and a shareable link is displayed and copyable.
  • Access: role-restricted to signed-in sales representatives.
  • Failure/recovery: if sending fails, a message is shown and the send can be retried.
  • Continuation: the representative shares the link with the client and later revisits Quote Details to see the outcome.

FR-4 — Track the client's decision (explicit) As a Sales representative, I should see whether a client accepted or rejected a quote, so that I know the quote's outcome.

  • Trigger/input: representative revisits Quotes or Quote Details after the client has decided.
  • Observable result: the quote's status shows accepted or rejected.
  • Access: role-restricted to signed-in sales representatives.
  • Failure/recovery: if the quote cannot be loaded, a message and return path to Quotes are shown.
  • Continuation: the representative acts on the outcome in their ongoing work.
Page 13 of 29

FR-5 — Accept or reject a quote from a link (explicit) As a Client / quote recipient, I should accept or reject a quote directly from the link I received, so that I can respond without an account.

  • Trigger/input: the client opens the shareable link and chooses Accept or Reject.
  • Observable result: the decision is recorded on the quote and the page reflects the resulting status; the sales representative sees the updated status.
  • Access: link access, no account required.
  • Failure/recovery: an invalid or unavailable link shows a clear message with no decision controls; the client can reload or contact the sender.
  • Continuation: the client's decision completes the quote's outcome.

FR-6 — Oversee the team pipeline (explicit) As a Sales manager, I should review the team's many quotes and their outcomes, so that I can keep deals moving.

  • Trigger/input: signed-in manager opens Pipeline.
  • Observable result: a tabular overview of the team's quotes with statuses and outcomes.
  • Access: role-restricted to signed-in sales managers.
  • Failure/recovery: if the pipeline fails to load, a retry is offered.
  • Continuation: the manager continues monitoring the team's quoting work.
Page 14 of 29

FR-7 — Self-service enrollment (required_inference) As a Sales representative or Sales manager, I should create my own account on Sign Up, so that I can begin using the quotation software.

  • Trigger/input: an anonymous visitor on Sign Up submits identity details and selects their role.
  • Observable result: an account is created, a session is established, and the actor enters the role-appropriate surface.
  • Access: anonymous.
  • Failure/recovery: validation or duplicate-identity errors are shown with entered values retained; the actor corrects and resubmits or goes to Login.
  • Continuation: the actor proceeds to Quotes (representative) or Pipeline (manager).

FR-8 — Returning verification (required_inference) As a Sales representative or Sales manager, I should sign in on Login, so that I can resume my quote work with role-appropriate access.

  • Trigger/input: a returning team member submits credentials on Login.
  • Observable result: a session is established and the actor reaches Quotes (representative) or Pipeline (manager).
  • Access: anonymous entry; protected surfaces become available only after verification.
  • Failure/recovery: invalid credentials show a message with the form retained; the actor retries or navigates to Sign Up.
  • Continuation: the actor resumes their accepted work.
Page 15 of 29

FR-9 — Anonymous product entry (required_inference) As a visitor, I should understand on Landing that this is quotation software for a big company's sales team, who it is for, and what it does, so that I can decide to sign up or sign in.

  • Trigger/input: an anonymous visitor opens Landing.
  • Observable result: the product explanation and paths to Sign Up and Login are presented.
  • Access: anonymous.
  • Failure/recovery: navigation links remain available at all viewports.
  • Continuation: the visitor proceeds to Sign Up or Login.

4. User Personas

Page 16 of 29

Sales representative

  • Product context: Works inside a big company's sales team that handles many quotes. Owns the quotes they build and send, and needs to know each one's status through acceptance or rejection.
  • Primary goal: Turn a client's need into a priced quote quickly, send it, and know its outcome.
  • Distinct responsibilities: Builds quotes with line items and pricing (New Quote); browses their quotes and statuses (Quotes); sends a quote and obtains the shareable link (Quote Details); tracks the client's decision.
  • Inputs and decisions: Client details, line-item descriptions, quantities, unit prices; the decision to send a quote and to whom to share the link.
  • Interactions with other participants: Hands the quote to the Client / quote recipient via the shareable link and awaits their accept/reject decision; works alongside the Sales manager who oversees the team pipeline.
  • Observable success: The quote appears in Quotes with a current status, the link is obtained and shared, and the status updates to accepted or rejected after the client decides.
Page 17 of 29

Sales manager

  • Product context: Oversees a sales team's quoting work in a big company, where many quotes are in flight at once.
  • Primary goal: Keep deals moving by seeing the team's quotes and their outcomes.
  • Distinct responsibilities: Reviews the team pipeline of quotes and their statuses and outcomes (Pipeline).
  • Inputs and decisions: Reads statuses, totals, and outcomes across the team's quotes to judge where attention is needed.
  • Interactions with other participants: Observes the work produced by Sales representatives and the outcomes recorded by Clients / quote recipients.
  • Observable success: The Pipeline presents the team's quotes with their current statuses and outcomes.

Client / quote recipient

  • Product context: Receives a quote from the company through a shareable link and responds to it without an account.
  • Primary goal: Review the quote and accept or reject it directly from the link.
  • Distinct responsibilities: Opens the Quote Link, reviews line items and totals, and records an accept or reject decision.
  • Inputs and decisions: The quote's contents and the accept/reject choice.
  • Interactions with other participants: Responds to the Sales representative's sent quote; the recorded decision becomes visible to the representative and in the team pipeline.
  • Observable success: The decision is recorded and the page reflects the resulting status.
Page 18 of 29

5. Core User Flows

Flow A — Sales representative creates and sends a quote

  1. The representative signs in on Login (or enrolls on Sign Up on first use) and lands on Quotes.
  2. On Quotes, the representative selects the action to start a new quote and arrives at New Quote.
  3. On New Quote, the representative enters the client's details and adds line items with description, quantity, and unit price; totals compute with tabular numerals.
  4. The representative saves the quote. On validation failure, inline messages appear with entered data retained; the representative corrects and resaves.
  5. On success, the quote appears in Quotes with an initial status, and the representative opens Quote Details.
  6. On Quote Details, the representative reviews the quote document and sends it. On send failure, a message appears and the send can be retried.
  7. On success, the status becomes sent and the shareable link is displayed; the representative copies the link and shares it with the client.
  8. Continuation: the representative returns to Quotes to continue with other quotes.
Page 19 of 29

Flow B — Sales representative tracks the client's decision

  1. The representative opens Quotes and scans statuses (or the header ticker).
  2. The representative opens the relevant quote in Quote Details.
  3. The status chip shows accepted or rejected, reflecting the client's recorded decision.
  4. If the quote cannot be loaded, a message and a return path to Quotes are shown.
  5. Continuation: the representative acts on the outcome in their ongoing work.

Flow C — Client accepts or rejects a quote from the link

  1. The client receives the shareable link from the sales representative and opens it, arriving at Quote Link without an account.
  2. The page loads the quote document — client, line items, totals, and current status — inside a centred card with crop-marks.
  3. If the link is invalid or the quote unavailable, a clear message appears with no decision controls; the client can reload or contact the sender.
  4. The client reviews the line items and totals and chooses Accept (ink) or Reject (outlined).
  5. The decision is recorded on the quote; the page reflects the resulting status.
  6. The sales representative sees the updated status in Quotes / Quote Details, and it appears in the team Pipeline.
Page 20 of 29

Flow D — Sales manager reviews the team pipeline

  1. The manager signs in on Login (or enrolls on Sign Up on first use) and lands on Pipeline.
  2. Pipeline loads the team's quotes in a dense tabular grid with sticky headers, status chips, and the live status ticker.
  3. If the pipeline fails to load, a retry is offered; if the team has no quotes, an explanatory empty state is shown.
  4. The manager reviews statuses and outcomes to keep deals moving.
  5. Continuation: the manager continues monitoring the team's quoting work.

Flow E — First-use enrollment and returning verification

  1. An anonymous visitor opens Landing, reads that bold-quotation is quotation software for a big company's sales team, who it is for, and what it does, and chooses the primary CTA to start.
  2. On Sign Up, the visitor enters identity details and selects their role (sales representative or sales manager).
  3. On validation or duplicate-identity failure, messages appear with entered values retained; the visitor corrects and resubmits or goes to Login.
  4. On success, a session is established and the actor enters Quotes (representative) or Pipeline (manager).
  5. Returning team members instead use Login; invalid credentials show a message with the form retained, and they retry or navigate to Sign Up.
Page 21 of 29

6. Visuals Colors and Theme

Muse and headline: Virgil Abloh — "Quoted precision: quotation software dressed in the 3% remix." Industrial, confident, a little wry: a workwear-grade tool with streetwear signage energy.

Color tokens (light mode):

  • Background: #F2F0EB (concrete-and-paper ground)
  • Surface: #FFFFFF (quote cards and forms)
  • Text / primary: #111111 (ink black — body text and primary buttons)
  • Accent: #FF5A00 (safety orange — primary CTA, active status, hazard-stripe motif; under 10% of any screen)
  • Muted: #8A857C (metadata, timestamps, secondary labels)
  • Hazard yellow: #F5D000 (only inside the diagonal construction-tape stripe, never as text)

Typography:

  • Headings: Archivo Expanded, all-caps, weight 800, tracking 0.02em, very large and tight-leading; frequently wrapped in literal quotation marks ("LIKE THIS").
  • Body: Space Grotesk.
  • Labels and metadata: Space Grotesk uppercase at 0.18em tracking, small sizes (tag/label voice).
  • Numerals: tabular throughout.
  • Scale (1.333 modular): display 56px mobile → 128px desktop (clamp); h2 40→72; h3 28→40; body 16→18; label 11→12 uppercase; mono numerals 14→16.
Page 22 of 29

Shape language: Hard edges and industrial framing. Zero border-radius on cards and buttons (strict 2px on inputs only). Hairline 1px ink borders, exposed grid rules, corner crop-marks on hero and quote cards, and a repeating diagonal hazard-stripe band (orange/yellow on ink) as section divider and CTA underline. Labels look like sewn-in garment tags: small ink rectangle with orange text, pinned to the top-left corner of cards.

Layout: Asymmetric editorial grid with a visible 12-column baseline and exposed vertical rules between columns. Landing hero is left-heavy: oversized quoted headline stacked in an 8-column block, narrow right rail of metadata labels, hazard-stripe CTA. App surfaces (Quotes, Pipeline, Quote Details) use a dense tabular grid with sticky column headers, tabular numerals right-aligned for prices, and a persistent left rail with quoted nav labels. Quote Link is a single centred document card with crop-marks and a large Accept (ink) / Reject (outlined) pair.

Imagery: Industrial textures and product-on-concrete photography — a quote document photographed flat on raw concrete, macro shots of paper stock and staples, halftone-treated monochrome imagery. Typography itself is the primary image. No stock people, no gradient blobs, no 3D renders.

Avoid: Blue–indigo accents or gradient blob heroes; rounded, soft, pastel or glassy surfaces; centred headline + subtext + single button SaaS hero; grids of identical hover-lift cards; stock photography of people shaking hands; Inter, Roboto, Arial, Helvetica, Poppins or system-ui for headings or body; excessive quotation-mark decoration on body copy; playful bounce or springy easing. The generic indigo/blue-on-white SaaS template is forbidden.

Page 23 of 29

7. Signature Design Concept

The public entry is a full-bleed paper ground (#F2F0EB) built as a construction drawing. A massive stacked headline in Archivo Expanded all-caps, ink black, spans the full viewport width — "QUOTE." on line one, "SEND." on line two, "CLOSED." on line three — each word wrapped in literal oversized quotation marks, with the final word set in safety orange. To the left, a small garment-tag label pinned at 45° reads "SALES TEAM / BIG CO." in orange-on-ink. Beneath the headline, a hazard-stripe band (orange/yellow on ink) runs edge-to-edge with the primary CTA "START A QUOTE" sitting on it in ink, leading to Sign Up. On the right, a single photographed quote document lies flat on concrete, cropped by the viewport edge, with corner crop-marks. Exposed 1px vertical rules divide the columns. No centred hero, no subtext paragraph above the fold, no blue button. All readable text and controls stay whole inside the viewport and their containers at 375px, 768px, and 1280px, wrapping or scaling with clamp() as needed; the photograph and decoration may bleed and crop.

Page 24 of 29

8. Interaction Model & Motion Direction

Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: flat

Landing Hero Motion Brief

  • Focal subject: the oversized quoted headline ("QUOTE." / "SEND." / "CLOSED.") and the photographed quote document on concrete.
  • Input → transformation → outcome thesis: as the visitor arrives, the stacked headline settles into place and the hazard-stripe band carrying "START A QUOTE" sweeps in once; the live status ticker begins scrolling real quote statuses ("#Q-1042 SENT", "#Q-1039 ACCEPTED") in Space Grotesk mono numerals. The outcome is a composed, industrial first frame with a clear path to Sign Up.
  • Motion vocabulary: snappy and functional — 140–220ms ease-out for state changes; a hazard-stripe wipe that sweeps once across a card on hover; status chips flip with a 120ms scale-and-colour change; a marquee ticker of live quote statuses. No bounce, no parallax depth, no decorative loops beyond the ticker.
  • Composed first frame: paper ground, left-heavy quoted headline in an 8-column block, garment-tag label at 45°, hazard-stripe band with the CTA, photographed document cropped at the right edge with crop-marks, ticker running beneath.
  • Reduced-motion state: the ticker pauses and wraps into rows so every status is fully readable; the hazard-stripe hover wipe and chip flips resolve instantly; all content and controls remain whole and reachable.
Page 25 of 29

9. Non-Functional Requirements

  • Durability of quote state (required_inference): quotes, line items, totals, statuses, shareable links, and recorded client decisions persist in application-owned storage so that representatives and managers can resume work across sessions and clients' decisions remain bound to the correct quote.
  • Identity and access (required_inference): Sign Up and Login are anonymously reachable; Quotes, New Quote, and Quote Details are restricted to signed-in sales representatives; Pipeline is restricted to signed-in sales managers; Quote Link is reachable by link without an account. A protected destination does not own the interaction that establishes access to itself.
  • Link-based client access (explicit): clients accept or reject a quote directly from a link without an account.
  • Legibility and viewport integrity (explicit design constraint): readable text and controls stay whole inside the viewport and their containers at 375px, 768px, and 1280px; moving or scrollable content may cross edges by design but every item becomes fully readable as it passes, and reduced-motion provides a usable static arrangement.
  • Motion performance (explicit design constraint): state transitions run at 140–220ms ease-out; the ticker is pausable; no bounce or parallax.
  • Scale context (explicit): the product targets a big company with a sales team handling many quotes, so list and pipeline surfaces must present many quotes legibly in dense tabular grids.
Page 26 of 29

10. Tech Stack

  • Frontend: React web application (custom UI) implementing the Landing, Login, Sign Up, Quote Link, Quotes, New Quote, Quote Details, and Pipeline pages.
  • Backend: Python/FastAPI service owning identity, quotes, line items, pricing totals, statuses, shareable links, and recorded client decisions, extending a single shared backend process.
  • Storage: durable application-owned storage for team member identities and quote records.
  • Deployment: Docker / docker-compose for the frontend and backend services.
Page 27 of 29

11. Assumptions and Constraints

  • Constraint (explicit): the product targets a big company with a sales team handling many quotes.
  • Assumption (required_inference): sales team members self-enroll on Sign Up and select their role (sales representative or sales manager); role determines which working surfaces are available.
  • Assumption (required_inference): the shareable link is produced when a sales representative sends a quote from Quote Details and is the only path by which a client reaches the Quote Link.
  • Assumption (required_inference): a client's accept or reject decision is recorded once per quote and reflected in the status seen by the representative and in the team pipeline.
  • Assumption (required_inference): quotes are owned by the representative who created them; the Pipeline presents the team's quotes to the manager.
  • Constraint (explicit design): the palette, fonts, surfaces, tone, and layout in Sections 6–8 are preserved as requested; the generic indigo/blue-on-white SaaS template is forbidden.
  • Boundary: no client account, client dashboard, or client history is part of the current product; no future-horizon requirements were stated.
Page 28 of 29

12. Glossary

  • Quote: a priced offer for a client, composed of client details, line items, and computed totals, with a status.
  • Line item: a single row of a quote with description, quantity, and unit price.
  • Status: the current state of a quote — including sent, accepted, and rejected.
  • Shareable link: the URL produced when a representative sends a quote, which opens the Quote Link for the client without an account.
  • Quote Link: the client-facing page reached from the shareable link where the client accepts or rejects the quote.
  • Pipeline: the sales manager's overview of the team's quotes and their outcomes.
  • Sales representative: a team member who creates, sends, and tracks quotes.
  • Sales manager: a team member who oversees the team's quotes and outcomes.
  • Client / quote recipient: the external recipient who accepts or rejects a quote from its link.
  • Garment-tag label: the small ink rectangle with orange uppercase text pinned to the top-left of cards and section headers.
  • Hazard-stripe band: the repeating orange/yellow diagonal stripe on ink used as CTA underline and section divider.
Page 29 of 29
Landing design preview
Landing: Read product explanation
Quote Link: 1. Open shared link
Quote Link: Review line items and totals
Quote Link: Accept quote
Quote Link: Reject quote
Quote Link: View recorded status
Quote Link: 2. Read invalid-link message
Quote Link: 3. Reload link
Landing design preview
Landing: Read product explanation
Quote Link: 1. Open shared link
Quote Link: Review line items and totals
Quote Link: Accept quote
Quote Link: Reject quote
Quote Link: View recorded status
Quote Link: 2. Read invalid-link message
Quote Link: 3. Reload link