{"ns":"meridian","title":"Meridian Care Service","version":"1.0","summary":"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.","personas":[{"name":"Visitor","need":"Understand the service and find the way to sign in."},{"name":"Patient","need":"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."],"features":[{"id":"LND","title":"Landing page","summary":"Public home page.","reqs":[{"id":"FR-LND-01","weight":"Must","text":"An anonymous visitor sees the hero and a way to sign in, but no booking form.","accept":["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"]}]},{"id":"AUT","title":"Sign in and out","summary":"Demo account login, failures, access control and logout.","reqs":[{"id":"FR-AUT-01","weight":"Must","text":"The login page shows the demo account in read-only fields; signing in with it opens the booking form.","accept":["Heading \"Login\" and \"Please login to make appointment.\"","Valid sign-in redirects to /meridian/#appointment with heading \"Make Appointment\" and the booking form"]},{"id":"FR-AUT-02","weight":"Must","text":"Any failed sign-in (wrong password, wrong case in the username, empty fields) shows the same message and keeps the login form.","accept":["\"Login failed! Please ensure the username and password are valid.\"","The username is case-sensitive","Both fields empty gives the same message"]},{"id":"FR-AUT-03","weight":"Must","text":"History and appointment creation require a signed-in session; otherwise the request is redirected to the login form and nothing is created.","accept":["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"]},{"id":"FR-AUT-04","weight":"Should","text":"Logout ends the session: the booking form and History are no longer reachable.","accept":["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"]}]},{"id":"MNU","title":"Sidebar menu","summary":"Hamburger menu with state-dependent links.","reqs":[{"id":"FR-MNU-01","weight":"Could","text":"The menu button opens a sidebar that can be closed; its links depend on the sign-in state.","accept":["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"]}]},{"id":"BKG","title":"Book an appointment","summary":"Booking form, date picker and confirmation.","reqs":[{"id":"FR-BKG-01","weight":"Should","text":"The booking form starts with documented defaults.","accept":["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"]},{"id":"FR-BKG-02","weight":"Must","text":"Booking shows a confirmation that repeats every chosen value.","accept":["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"]},{"id":"FR-BKG-03","weight":"Should","text":"Only the visit date is required; omitted fields take the defaults.","accept":["Visit Date 01/15/2027 only: Tokyo Meridian Care Center; readmission No; program Medicare; empty comment"]},{"id":"FR-BKG-04","weight":"Must","text":"A visit date is required, in the browser and on the server; an empty date creates no appointment.","accept":["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"]},{"id":"FR-BKG-05","weight":"Should","text":"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.","accept":["99/99/2026 is rejected: no confirmation and no entry in History"]},{"id":"FR-BKG-06","weight":"Could","text":"The calendar popup fills the visit date in mm/dd/yyyy.","accept":["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"]},{"id":"FR-BKG-07","weight":"Should","text":"The comment is displayed as plain text everywhere; markup is escaped.","accept":["Comment \"<b>x</b>\" appears literally on the confirmation and in History, not bold"]}]},{"id":"HST","title":"History","summary":"Appointments of the current session.","reqs":[{"id":"FR-HST-01","weight":"Must","text":"History lists the current session’s appointments in booking order, each as a panel headed by its visit date.","accept":["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"]},{"id":"FR-HST-02","weight":"Must","text":"History is isolated per browser session: another session never sees these appointments.","accept":["A new browser context that signs in and opens History sees \"No appointment.\"","The first context still shows its panel \"12/24/2026\""]}]}],"nfr":[{"id":"NFR-01","weight":"Could","text":"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":[{"term":"Session","meaning":"A browser cookie that carries the sign-in state and scopes appointments."}],"outOfScope":["Profile page content (under construction)","Email and phone links in the footer"]}