Superapp / Product requirements / meridian

Meridian Care Service — product requirements

Version 1.05 features16 requirements8 Must Open appJSONMarkdown

Meridian Care Service is a server-rendered healthcare appointment site. Visitors see a landing page and sign in with a demo account shown on the login page; signed-in users book a visit at one of three care centers, receive a confirmation, and review the appointments of their own browser session in History. A sidebar menu adapts to the sign-in state.

Problem. Patients need a simple way to request a visit and to see what they have booked, without anyone else being able to see or create appointments on their behalf.

Users

Goals

Out of scope

Contents

Landing page

Public home page.

FR-LND-01
Must
An anonymous visitor sees the hero and a way to sign in, but no booking form.
  • Heading "Meridian Care Service", sub-heading "Care That Fits Your Schedule", button "Make Appointment" leading to the login form
  • No "Book Appointment" button is rendered
  • The three centers are listed: Tokyo, Hongkong and Seoul Meridian Care Center
  • The footer shows the service name, a postal address and a copyright line

Sign in and out

Demo account login, failures, access control and logout.

FR-AUT-01
Must
The login page shows the demo account in read-only fields; signing in with it opens the booking form.
  • Heading "Login" and "Please login to make appointment."
  • Valid sign-in redirects to /meridian/#appointment with heading "Make Appointment" and the booking form
FR-AUT-02
Must
Any failed sign-in (wrong password, wrong case in the username, empty fields) shows the same message and keeps the login form.
  • "Login failed! Please ensure the username and password are valid."
  • The username is case-sensitive
  • Both fields empty gives the same message
FR-AUT-03
Must
History and appointment creation require a signed-in session; otherwise the request is redirected to the login form and nothing is created.
  • Opening /meridian/history.php without a session redirects to /meridian/profile.php#login
  • Posting to /meridian/appointment.php without a session returns 302 to the login form and creates no appointment
FR-AUT-04
Should
Logout ends the session: the booking form and History are no longer reachable.
  • After Logout the browser returns to /meridian/ with no booking form
  • The menu then lists only Home and Login
  • History redirects to the login form

Sidebar menu

Hamburger menu with state-dependent links.

FR-MNU-01
Could
The menu button opens a sidebar that can be closed; its links depend on the sign-in state.
  • Signed out: Meridian Care, Home, Login
  • Signed in: Meridian Care, Home, History, Profile, Logout
  • "Close menu" hides the sidebar
  • Profile shows "Under construction." and a "Logout" button

Book an appointment

Booking form, date picker and confirmation.

FR-BKG-01
Should
The booking form starts with documented defaults.
  • Facility "Tokyo Meridian Care Center" (options Tokyo, Hongkong, Seoul)
  • "Apply for hospital readmission" unchecked
  • Healthcare Program "Medicare" selected (Medicare, Medicaid, None)
  • Visit Date empty with placeholder "mm/dd/yyyy"; Comment empty
FR-BKG-02
Must
Booking shows a confirmation that repeats every chosen value.
  • Seoul Meridian Care Center, readmission ticked, Medicaid, 12/24/2026, comment "Follow-up visit"
  • Heading "Appointment Confirmation" and "Please be informed that your appointment has been booked as following:"
  • Rows: Facility Seoul Meridian Care Center; Apply for hospital readmission Yes; Healthcare Program Medicaid; Visit Date 12/24/2026; Comment Follow-up visit
  • "Go to Homepage" returns to /meridian/ with the booking form
FR-BKG-03
Should
Only the visit date is required; omitted fields take the defaults.
  • Visit Date 01/15/2027 only: Tokyo Meridian Care Center; readmission No; program Medicare; empty comment
FR-BKG-04
Must
A visit date is required, in the browser and on the server; an empty date creates no appointment.
  • Submitting with Visit Date empty shows the browser required-field message and no confirmation
  • A direct post with an empty date returns 302 to /meridian/#appointment and adds nothing to History
FR-BKG-05
Should
The visit date must be a real calendar date in mm/dd/yyyy; values that match the pattern but do not exist are rejected and not booked.
  • 99/99/2026 is rejected: no confirmation and no entry in History
FR-BKG-06
Could
The calendar popup fills the visit date in mm/dd/yyyy.
  • Clicking Visit Date opens dialog "Choose date" with the current month, weekdays Su to Sa and today highlighted
  • "Next month" then day 15 closes the popup and fills mm/15/yyyy for the next month
  • Escape closes the popup and keeps the value
FR-BKG-07
Should
The comment is displayed as plain text everywhere; markup is escaped.
  • Comment "<b>x</b>" appears literally on the confirmation and in History, not bold

History

Appointments of the current session.

FR-HST-01
Must
History lists the current session’s appointments in booking order, each as a panel headed by its visit date.
  • Empty: heading "History" and "No appointment."
  • After booking 12/24/2026 then 01/15/2027: panels "12/24/2026" then "01/15/2027", each with Facility, Apply for hospital readmission, Healthcare Program and Comment
FR-HST-02
Must
History is isolated per browser session: another session never sees these appointments.
  • A new browser context that signs in and opens History sees "No appointment."
  • The first context still shows its panel "12/24/2026"

Non-functional requirements

NFR-01
Could
On a 375 px wide screen the hero heading shrinks, form labels sit left-aligned above their fields, nothing scrolls sideways, and the sidebar overlays the page and can be closed.

Glossary and rules

SessionA browser cookie that carries the sign-in state and scopes appointments.