Superapp / Product requirements / meridian
Meridian Care Service — product requirements
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
- Visitor — Understand the service and find the way to sign in.
- Patient — Book a visit with a facility, program and date, get a clear confirmation and review earlier bookings.
Goals
- Booking and history are reachable only after signing in.
- The confirmation repeats exactly what the patient chose.
- Each browser session sees only its own appointments.
Out of scope
- Profile page content (under construction)
- Email and phone links in the footer
Contents
Landing page
Public home page.
FR-LND-01
MustAn 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
MustThe 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
MustAny 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
MustHistory 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
ShouldLogout 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
CouldThe 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
ShouldThe 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
MustBooking 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
ShouldOnly 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
MustA 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
ShouldThe 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
CouldThe 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
ShouldThe 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
MustHistory 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
MustHistory 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
CouldOn 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
| Session | A browser cookie that carries the sign-in state and scopes appointments. |
|---|