lemon-website

byJanvi shah

Create the website for me

HomeGet help nowAdmin LoginBookAdmin404TermsPrivacy policy
Home

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirements Document for lemon-website

1. Introduction

The user requested creation of a website based on the attached TheraCare V1 Scope of Work document. The user chose the project name "lemon-website".

Page 1 of 36

1.1 Source overview

TheraCare Website — V1 Scope of Work

​Oct 27, 2026 · ​@Priyank Dave

This document describes the features of TheraCare's first website (V1), launching by 20

December 2026.

V1 is a calm, premium website for women in India, mostly arriving from Instagram on their

phones. Its one job is to help them book a ₹799 intro consult. It has:

TheraCare Website — V1 Scope of Work

Page 3 of 9

—

TheraCare Website — V1 Scope of Work

TheraCare Website — V1 Scope of Work

Page 5 of 9

TheraCare Website — V1 Scope of Work

Page 6 of 9

TheraCare Website — V1 Scope of Work

Page 7 of 9

TheraCare Website — V1 Scope of Work

Page 8 of 9

Page 2 of 36

TheraCare Website — V1 Scope of Work

Page 9 of 9

2. System Overview

2.1 Source overview

One scrolling home page and four supporting pages.

  1. Features at a glance

V1 has six features. Each is described in the sections that follow.

Feature

What it includes

TheraCare Website — V1 Scope of Work

Page 1 of 9

  1. Pages and sections

V1 has six pages. All of them are designed mobile-first and adapt to tablet and desktop.

3. Functional Requirements

Page 3 of 36

3.1 Source overview

A booking flow with an intake form, consent, slot selection and online payment.

A private admin panel for bookings, intake forms and payments.

Crisis help visible on every page.

Section

1

Website pages

Home, Book, Get help now, Privacy policy, Terms,

404, plus the header, footer and crisis strip on

every page

2

2

Booking and payment

Slot picker linked to Google Calendar, ₹799

payment through Razorpay (UPI and cards),

confirmation emails

3

3

Intake form and

consent

Page 4 of 36

Short form, recorded consent, encrypted

storage

4

4

Admin panel

Bookings, intake and payment views, user roles,

CSV export, content editing without code

5

2.1 On every page

2.2 Home page

Element

What it does

Editable by you

Crisis strip

A slim, always-visible strip with your crisis

message. It links to Get help now

Yes: text and link

Header

Logo, short navigation, a "Book intro consult"

button. On phones it collapses to a menu

Yes: menu items

Page 5 of 36

Footer

Contact email, Privacy, Terms, Get help now, social

links

Yes

Logo

A swappable component. The PNG goes in now and

the vector replaces it when ready, with no layout

change

Yes: upload

Section

Content

Editable by you

Hero

Headline, short line, booking button. Your

character illustration if it's ready, otherwise

a typographic hero

Yes

How it works

3–4 short steps, from intake through

booking and payment to being matched

Yes

Page 6 of 36

Our therapists

3–4 cards, each with photo, name,

qualifications, a 60–80 word bio, languages

and focus areas. The cards build trust; they

are not for choosing or booking a specific

therapist

Yes: add, edit, hide,

reorder

Prices

₹799 intro consult, ₹2,500–5,000 sessions,

₹20,000 8-session SFBT programme

Yes

Confidentiality

How privacy is handled, in plain words. No

promises of outcomes

Yes

FAQ

Questions and answers that expand when

tapped

Yes: add, edit, reorder

TheraCare Website — V1 Scope of Work

Page 7 of 36

Page 2 of 9

2.3 Book page

One page holds the intake form, the slot picker, payment and the confirmation screen. It

also shows clear messages for a failed payment (with a retry) and for a slot that has

expired. Details are in sections 3 and 4.

2.4 Supporting pages

  1. Booking and payment

A visitor can book and pay for one service, the ₹799 intro consult, in a single sitting. The

time slot is confirmed only after payment succeeds.

3.1 Booking rules

Section

Content

Editable by you

Final booking

button

A closing message and the booking button

Yes

Page

Content

Page 8 of 36

Get help now

Your crisis text and helpline numbers, with tap-to-

call on phones

Privacy policy

Your text, formatted to match the site

Terms

Your text, formatted to match the site

404 (page not found)

A calm message with links to Home, Book and Get

help now

Service

Intro consult, ₹799

Price: yes

Available times

Weekly time windows you set in the admin

panel, minus anything already busy in your

3.2 Payment

Razorpay checkout supporting UPI and debit or credit cards. Card and UPI details are

handled by Razorpay and never reach our servers.

Razorpay emails a payment receipt automatically.

Page 9 of 36

If payment fails, the visitor sees a clear message and can retry while the slot is still

held.

A booking is confirmed only after we receive Razorpay's signed confirmation, so a

closed browser can't leave a paid booking unrecorded.

3.3 What happens after payment

A Google Calendar event is created for the slot, with a Google Meet link if you use

Meet.

The visitor gets a confirmation email: date, time, joining details, and a link to Get help

now.

You get a "new booking" email that contains no intake answers. Those are viewed only

in the admin panel.

You match her with a therapist yourself and mark the booking "Matched" in the admin

panel. Matching is manual in V1.

3.4 Handled manually in V1

Reschedules and cancellations: the visitor contacts you, and you update the booking

in the admin panel and the calendar.

Page 10 of 36

Refunds: issued from your Razorpay dashboard, following your refund policy.

How far ahead

Up to 14 days

Yes

Gap between consults

10 minutes

Yes

Slot hold during

payment

10 minutes. The slot is released if payment

isn't completed

Calendar

One shared Google Calendar receives every

booking

Page 4 of 9

  1. Intake form and consent

The intake form asks only what you need to match her: up to 12 fields, taking about two

minutes. Answers are encrypted before they are saved.

4.1 Fields (final list confirmed with you)

4.2 Consent

Page 11 of 36

Two separate checkboxes, both unticked by default:

agreement to the Privacy policy and Terms;

consent to TheraCare processing her intake answers to arrange her care.

Each consent is saved with the exact wording she saw, its version, and the date and

time.

If you change the consent wording later, the new version applies to new bookings only.

Earlier records keep their original wording.

A short notice above the form says TheraCare is not an emergency service and links to

Get help now.

Type

Required

First name

Text

Yes

Email

Email

Yes

Phone / WhatsApp

Phone (+91 default)

Page 12 of 36

Yes

I am 18 or older

Checkbox

Yes

City

Text

No

Preferred language for

sessions

Choice

Yes

What brings you here

Choice of common themes, plus an optional

short note

Yes

Have you been in therapy

before?

Yes / No

No

Preferred days and times

Choice

Page 13 of 36

No

  1. Admin panel and content editing

One private, password-protected admin panel holds both your bookings and your website

content. Nothing in it needs code.

5.1 Bookings, intake and payments

Bookings: list and calendar views. Filter by date and status (Paid, Matched, Completed,

Cancelled). Change the status.

Intake: each submission, linked to its booking, with consent records.

Payments: amount, method, Razorpay reference, paid or failed status.

CSV export of bookings and payments for your records or accountant.

5.2 User roles

You can add or remove people and change their roles yourself. Every view of an intake

record is logged with the person and the time.

5.3 What you can edit without code

All page text, headings, images and buttons, with a live preview before publishing.

Therapist cards: add, edit, hide, reorder.

Prices, FAQ, crisis strip text, helpline numbers, the Privacy policy and Terms.

Page 14 of 36

Edit website

content

See bookings and

payments

Read intake

answers

Booking settings: availability windows, notice period, booking horizon, gap between

consults, intro consult price.

Search titles, descriptions and social sharing images for each page.

7.2 Privacy (DPDP Act 2023)

Explicit, unticked consent, recorded with version and time (section 4).

You set a retention period, and you can export or delete one person's data on request.

4. User Personas

Page 15 of 36

4.1 Source overview

Role

Admin

(founder)

Yes

Yes

Yes

Clinical lead

No

Yes

Yes

Editor

Yes

No

No

5. Core User Flows

Page 16 of 36

5.1 Journey 1 — Book and pay for the ₹799 intro consult

Actor: Prospective client (a woman in India, typically arriving from Instagram on her phone). Trigger: She taps a "Book intro consult" button in the header, hero, or closing section of the Home page, or a link on the 404 page.

  1. She lands on the Book page, which holds the intake form, slot picker, payment and confirmation in one sitting. A short notice above the form states that TheraCare is not an emergency service and links to Get help now.
  2. She completes the intake form — up to 12 fields, about two minutes. Required: first name, email, phone/WhatsApp (with +91 default), an "I am 18 or older" checkbox, preferred language for sessions, and "What brings you here" (a choice of common themes plus an optional short note). Optional: city, prior therapy experience (Yes/No), and preferred days and times.
  3. She ticks two separate consent checkboxes, both unticked by default: agreement to the Privacy policy and Terms, and consent to TheraCare processing her intake answers to arrange her care. Each consent is saved with the exact wording she saw, its version, and the date and time. If the wording changes later, the new version applies to new bookings only; earlier records keep their original wording. Answers are encrypted before they are saved.
  4. She picks a slot. Available times are the weekly windows set in the admin panel, minus anything already busy in the shared Google Calendar, offered up to 14 days ahead with a 10-minute gap between consults.
  5. She pays ₹799 through Razorpay checkout (UPI and debit or credit cards). Card and UPI details are handled by Razorpay and never reach TheraCare's servers. The slot is held for 10 minutes during payment and released if payment is not completed.
  6. Result: The booking is confirmed only after Razorpay's signed confirmation is received, so a closed browser cannot leave a paid booking unrecorded. The time slot is confirmed only after payment succeeds. She sees the confirmation screen.
Page 17 of 36
  1. After payment: A Google Calendar event is created for the slot, with a Google Meet link if Meet is used. She receives a confirmation email with date, time, joining details and a link to Get help now. Razorpay emails a payment receipt automatically. The owner receives a "new booking" email containing no intake answers; those are viewed only in the admin panel.
  2. Continuation: The owner matches her with a therapist manually and marks the booking "Matched" in the admin panel.

Failure and recovery:

  • Payment fails: she sees a clear message and can retry while the slot is still held (within the 10-minute hold).
  • Slot expires: she sees a clear message for an expired slot and can choose another available time.
  • Reschedule or cancellation: handled manually in V1 — she contacts the owner, who updates the booking in the admin panel and the calendar.
  • Refund: issued from the Razorpay dashboard following the refund policy.

5.2 Journey 2 — Get urgent help

Actor: A visitor in distress, from any page. Trigger: She taps the always-visible crisis strip, a Get help now link in the header/footer, the notice above the intake form, the confirmation email, or the 404 page.

  1. She reaches the Get help now page, which shows the crisis text and helpline numbers with tap-to-call on phones.
  2. Result: She can call a helpline directly. The crisis strip text and link, and the helpline numbers, are editable in the admin panel without code.
Page 18 of 36

5.3 Journey 3 — Recover from a broken or missing page

Actor: Any visitor. Trigger: She follows a bad link or mistypes a URL.

  1. The 404 page shows a calm message with links to Home, Book and Get help now.
  2. Result: She continues to booking or to crisis support without a dead end.

5.4 Journey 4 — Find answers before booking

Actor: Prospective client on the Home page. Trigger: She wants to understand the process or has a question.

  1. She reads the "How it works" section — 3–4 short steps from intake through booking and payment to being matched.
  2. She taps FAQ questions to expand the answers.
  3. Result: She continues to the Book page via the booking button, or leaves. No account or login is required at any point.
Page 19 of 36

5.5 Journey 5 — Manage bookings, intake and payments (owner)

Actor: TheraCare owner. Trigger: A new booking email, or routine review.

  1. She signs in to the private, password-protected admin panel.
  2. She views bookings in list or calendar view, filtering by date and status (Paid, Matched, Completed, Cancelled), and changes status — including marking a booking "Matched" after matching a therapist manually.
  3. She reads intake answers and payment views. Intake answers appear only here, never in email.
  4. She exports data to CSV when needed.
  5. Result: Bookings, matching and payment records stay current. Reschedules and cancellations she handles here also update the calendar.

5.6 Journey 6 — Edit website content without code (owner)

Actor: TheraCare owner. Trigger: A text, price, image or policy change.

  1. She opens the content editor in the admin panel.
  2. She edits page text, headings, images and buttons, therapist cards (add, edit, hide, reorder), prices, FAQ, crisis strip text, helpline numbers, and the Privacy policy and Terms.
  3. She reviews a live preview before publishing.
  4. Result: Changes go live without code. Consent wording changes apply to new bookings only.
Page 20 of 36

5.7 Journey 7 — Handle a data request (owner)

Actor: TheraCare owner. Trigger: A person asks to see or remove her data, within the retention period she has set.

  1. She locates the person's records in the admin panel.
  2. She exports or deletes that person's data on request.
  3. Result: The request is fulfilled consistent with the recorded consent and retention settings.

5.8 Role-based access

The admin panel distinguishes who can edit website content, see bookings and payments, and read intake answers. (Default: the V1 owner holds all three; additional roles are assigned per person in the panel.) Visitors never need an account, login or permission to browse, book or get help.

Page 21 of 36

6. Visuals Colors and Theme

[Design proposal; unspecified choices are defaults.]

Palette and surfaces. TheraCare reads as a boutique spa or editorial magazine, never a clinic, an app or a startup template. The supplied palette is plum, rose, sage, cream and charcoal, applied in light mode as: background cream #F3E8DC (dominant field, ~65%), surface warm white #FBF7F1 for reading surfaces, forms and legal content (~20%), primary deep plum #4B2037 for headings, links and high-contrast buttons (~10%), accent rose #B85D72 as the editorial headline field, selected rules and secondary callouts (~3%), muted sage #77856A as a quiet structural accent for steps, reassurance labels and confidentiality details (~2%), and charcoal #292426 as the default reading colour. Rose and sage carry large headings and accents; body copy stays charcoal or plum so it meets accessibility contrast standards. Rose text appears only at large display sizes. No clinical blues.

Type. Lora for headings at 500–600 weight, tight but breathable tracking (-0.025em), sentence case, with editorial line breaks that make short intentional phrases. Source Sans 3 at 400–600 for mobile labels, forms and information. Essential copy is never set in all caps. Editorial clamp scale: display clamp(56px, 11vw, 132px) with a 56px mobile minimum; H1 clamp(42px, 7vw, 80px); H2 clamp(32px, 4.8vw, 56px); H3 24/30px; body 17/27px; small labels 13/18px. Mobile measures: 18–24 characters for display lines, 34–42 for body copy. Fonts are self-hosted.

Shape and spacing. Mostly sharp editorial edges and fine 1px plum rules, tempered by one recurring soft arch — an upright rounded-top frame used for the hero artwork slot, therapist portraits and the closing invitation. Buttons are gently rounded (6px), never pill-shaped. Form fields are calm rectangles with a 2px visible plum focus ring. Generous whitespace and type throughout.

Page 22 of 36

Layout. Mobile-first full-width editorial chapters: 20px gutters and stacked content at 375px, a 6-column grid at 768px, a 12-column grid at 1280px with a wide left text column and deliberate empty space to its right. The home page alternates cream, rose and warm-white chapters rather than repeating card grids. The booking journey keeps the same materials but becomes single-column and task-first, with a visible step index and no decorative interruption. Readable text and controls stay whole inside the viewport and their container at every breakpoint.

Imagery. No stock photos of smiling therapists, clinical photography, cartoon mascots or busy animation. The hero uses a swappable tall artwork frame that accepts a supplied PNG now and a vector replacement later without layout change; until artwork is ready it holds a restrained abstract line composition — two rose and sage contour forms on cream — rather than a generic illustration. Therapist cards use optional, quietly art-directed portraits in the shared arch crop, supported by qualifications and plain text.

Page 23 of 36

6.1 Source overview

5

Look and feel

Your palette and fonts, one small design system,

calm motion, phone-first layouts

6

6

  1. Look and feel

Design follows your brief: the calm of a boutique spa or an editorial magazine, never a

clinic, an app or a startup template.

Every page uses one small design system: your palette (plum, rose, sage, cream, charcoal),

Lora for headings and Source Sans 3 for body text, and shared buttons, cards, form fields,

crisis strip and FAQ accordion. Layouts are designed for phones first and adapt to tablet

6.1 Brand rules

No stock photos of smiling therapists, clinical blues, cartoon mascots or busy

animation.

Page 24 of 36

Rose and sage are used for large headings and accents. Body text is in charcoal or plum

so it meets accessibility contrast standards.

Page 25 of 36

7. Signature Design Concept

[Design proposal; unspecified choices are defaults.]

Muse and headline. Tobias van Schneider's editorial minimalism, softened into a restorative private invitation. The public entry headline is an oversized two-to-four-line plum Lora statement broken into short readable phrases, set beside — not above — a tall rose artwork panel.

The public entry. On cream, the first screen is a split editorial composition, not a centred SaaS block. At desktop the statement occupies the left seven columns; the right five columns hold the rose panel with the fixed-ratio swappable artwork frame and a fine sage contour line extending beyond its edge. The ₹799 booking invitation is a solid plum button pinned beneath the statement, with the short explanatory line above it. On mobile the statement comes first at 56px, then the full-width rose artwork panel, then the booking button; all text stays within 20px gutters and never overlaps the art. A slim deep-plum crisis strip with an underlined “Get help now” link sits above the header on every page, remaining a complete readable two-line band on mobile rather than collapsing to an icon.

Signature moves. The viewport-scale Lora headline scaling from 56px to 132px beside the vertical rose panel. The repeatable rounded-top arch frame as the brand's quiet signature — hero art, therapist portraits and the final booking invitation — while all other modules stay square and ruled. The “How it works” sequence as a vertical editorial index: oversized sage numerals in the left margin beside four concise steps connected by a single plum rule, replacing a card grid. Pricing as a two-column magazine ledger with large ₹ figures, hairline dividers and plain-language notes below each price, not elevated SaaS cards.

Page 26 of 36

Avoid. Clinical blue, medical iconography, sterile surfaces or promises of therapeutic outcomes; stock imagery of smiling therapists or posed consultations; cartoon mascots, gradient blobs, glassmorphism and floating dashboard tiles; centred headline-plus-subtext-plus-button heroes; repeated identical cards with hover-lift; tiny low-contrast rose or sage body text; autoplay carousels; and any implication that visitors can select or book a specific therapist.

8. Interaction Model & Motion Direction

[Design proposal; unspecified choices are defaults.]

Interaction Model: Static (direction) Motion Tempo: restrained Hero Dimensionality: flat

Landing Hero Motion Brief. Focal subject: the oversized plum Lora statement and the rose artwork panel beside it, with the ₹799 booking button beneath. Thesis: a visitor arriving from Instagram on her phone reads the calm statement, sees the arch-framed artwork settle into place, and meets one clear booking invitation — input is her attention, transformation is a quiet reveal that preserves hierarchy, outcome is an unobstructed path to the Book page. Vocabulary: gentle 180–280ms opacity fades and short upward editorial reveals only as sections enter view; the hero's hairline rule may draw once on load; FAQ answers expand without bounce. First frame: cream field, crisis strip above the header, statement and rose panel fully composed and legible before any motion. Reduced-motion state: all animation removed under prefers-reduced-motion, leaving the same hierarchy and fully visible static content. Booking controls, error messages and payment status changes respond immediately and clearly rather than theatrically; no busy animation distracts from crisis help or booking.

Page 27 of 36

8.1 Source overview

Generous whitespace and type. Motion limited to gentle fades, and switched off for

visitors who ask their device for reduced motion.

9. Non-Functional Requirements

Page 28 of 36

9.1 Source overview

6

6

Standards

Accessibility, speed, SEO, analytics without

4.3 Storage

The free-text note and the sensitive answers are encrypted before storage. The

database is in Mumbai.

Only the roles you allow can read intake answers (section 5). Every time someone

opens an intake record, it is logged.

Intake answers are never included in emails.

crisis strip and FAQ accordion. Layouts are designed for phones first and adapt to tablet

and desktop.

  1. Technical, privacy and quality standards

7.2 Privacy (DPDP Act 2023)

Only the data needed for matching is collected.

Sensitive answers are encrypted, access depends on role, and every view is logged.

Page 29 of 36

No ad pixels or third-party trackers on the Book page or intake form.

Analytics on other pages uses no cookies, so no cookie banner is needed.

Fonts are served from our own domain, with no calls to Google.

7.3 Quality targets

7.4 Supported browsers and devices

Latest two versions of Chrome, Safari (Mac and iPhone), Edge and Firefox, plus

Chrome on Android.

Screen widths from 360 px (small phones) to 1440 px and wider.

Area

Target

Accessibility

WCAG 2.2 AA: contrast, keyboard use, screen-

reader labels, visible focus

Speed

Lighthouse performance 90+ on mobile for Home

SEO

Page titles and descriptions, social sharing images,

sitemap, robots file, FAQ structured data, Google

Search Console set up

Analytics

Page 30 of 36

Visits, sources (including Instagram via UTM links)

and booking-button clicks. Turned off on the Book

page

Reliability

Daily database backups kept for 7 days. Uptime

monitoring with email alerts. HTTPS everywhere

10. Tech Stack

Page 31 of 36

10.1 Source overview

Google Calendar

Yes

The site is built on Next.js with Payload CMS. Intake, booking and payment records are

stored in Mumbai, and every account is in TheraCare's name.

7.1 Hosting and data location

What

Where

Website

Vercel. Pages served from a global network; forms

and payments processed in the Mumbai region

Database: intake, bookings, payments

Supabase, Mumbai

Images and files

Supabase Storage, Mumbai

Payments

Razorpay, India

Transactional email

ZeptoMail, India data centre

Page 32 of 36

11. Assumptions and Constraints

Page 33 of 36

11.1 Source overview

This covers V1 only. Anything not described here is out of scope (section 8).

trackers on sensitive pages, hosting in India

Rule

V1 setting

Changeable by

you

Session length

To be confirmed with you (for example 20 or

30 minutes)

Yes

panel. Matching is manual in V1.

3.4 Handled manually in V1

Rule

V1 setting

Changeable by

you

Minimum notice

12 hours before the slot

Yes

Page 34 of 36

No

  1. Out of scope

The following are not part of V1. Any of them can be quoted separately.

Content creation: copywriting, photography, illustration, video and therapist

recruitment.

Legal: drafting or legal review of the Privacy policy, Terms and consent wording.

Marketing: paid ads, social media management, ongoing SEO work, email campaigns.

Ongoing content updates after launch. Your team makes these in the admin panel.

Booking extras: self-service reschedule or cancel links, automatic refunds, reminder

messages, more than one service, or booking with a specific therapist.

Languages other than English.

Third-party fees: domain, hosting, Razorpay transaction fees, email service.

Later phases: all items listed under "Later" in TheraCare's brief.

12. Glossary

Page 35 of 36

12.1 Source overview

7

Field

Page 36 of 36
Live
Home design preview
Home: Open site
Admin Login: Sign in with password
Admin: View bookings list
Admin: Filter bookings by date and status
Admin: Change booking status to Matched
Admin: Read intake answers
Admin: View payment records
Admin: Export bookings and payments to CSV
Admin: Edit website content
Admin: Preview changes live
Admin: Publish changes
Admin: Locate person's records
Admin: Export or delete person's data
Admin: Manage user roles
Admin: Update booking settings
Live
Home design preview
Home: Open site
Admin Login: Sign in with password
Admin: View bookings list
Admin: Filter bookings by date and status
Admin: Change booking status to Matched
Admin: Read intake answers
Admin: View payment records
Admin: Export bookings and payments to CSV
Admin: Edit website content
Admin: Preview changes live
Admin: Publish changes
Admin: Locate person's records
Admin: Export or delete person's data
Admin: Manage user roles
Admin: Update booking settings