Book an appointment token online.
Translation pending
HealthTypeScript · CSSGitHub @maliksahilwaqasOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Ordinal — a token-based clinic operating system: patient booking, reception, doctor console, pharmacy console, and waiting-room display. Built with Next.js and Supabase.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A single-doctor appointment-booking system: patients pick a location, day and
token; reception runs the queue and confirms requests; the doctor manages
their own schedule, patients and earnings; a platform admin configures the
deployment before handover. Built from a Claude Design mockup
(Doctor Booking.dc.html) and follows the same stack/conventions as the
sibling court-booking-portal project.Read the full README ↗A single-doctor appointment-booking system: patients pick a location, day and
token; reception runs the queue and confirms requests; the doctor manages
their own schedule, patients and earnings; a platform admin configures the
deployment before handover. Built from a Claude Design mockup
(Doctor Booking.dc.html) and follows the same stack/conventions as the
sibling court-booking-portal project.
Next.js 16 (App Router) · TypeScript · Tailwind v4 · Supabase (@supabase/ssr,
Postgres, RLS) · Zod · Vitest.
npm installsupabase/migrations/ (in
order) followed by supabase/seed.sql -- via the SQL editor, or the
Supabase CLI once linked..env.example to .env.local and fill in your project's URL and
anon key (and the service-role key, if you end up needing the admin
client).public.staff for each,
e.g.:
insert into public.staff (id, full_name, email, role)
values ('<auth-user-uuid>', 'Reception', '[email protected]', 'reception');
Repeat with role = 'doctor', role = 'admin' and role = 'store'.
There's no in-app way to create staff accounts (the mockup doesn't have
one either -- this is a one-time setup step).npm run dev, then:
/ -- patient booking (public)/staff/login -- reception, doctor, admin and store all sign in here
and are routed to /reception, /doctor, /admin, /store by role./display -- waiting-room token screen (public, see below)The doctor writes a structured prescription (medicine + morning/night dose
checkboxes, a free-text note, an optional 15/30/60-day follow-up) from their
Dashboard tab while a patient is in_room -- gated by Admin > Switches'
"Prescription writing" flag. Once that patient is marked done, their
prescription (if it has at least one medicine) shows up same-day on the
store console (/store), which can mark it given and print it -- the
printable layout (components/store/PrescriptionDocument.tsx) pulls the
doctor's name/speciality/qualifications/phone/address/clinic straight from
the admin-edited doctor_profile row, so re-branding this app for a
different doctor is just editing that profile, not the print layout.
Reception also has a same-data "Follow-ups" list (Patients tab -> Follow up)
for the patients who got a follow-up date, soonest first.
/display is a public, unauthenticated, chrome-free page meant to run
full-screen on a waiting-room TV or monitor -- point one at each location with
?locationId=<id> (falls back to whichever location is open today if
omitted). It polls the same /api/now-serving route the reception queue and
doctor dashboard already use, every 30 seconds, and shows only whichever token
is currently in_room as T<n> in giant centered text (an em-dash when no
one's in the room). It blinks for 45 seconds after the number it's showing
changes, so a call is hard to miss even if no one's looking right when it
happens. No new backend was needed for this -- it's a thin client on top of
the existing queue state.
The mockup is a design prototype with some UI-only affordances and demo data that don't map onto real, persisted state. These were intentionally not faithfully reproduced as fake interactivity:
onClick)
and stay inert here too.bookings rows for the current month,
not the mockup's hardcoded "PKR 1.34M" flavor text -- a fresh deployment's
numbers will look much smaller until real bookings accumulate.onClick either).