尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Ordinal — a token-based clinic operating system: patient booking, reception, doctor console, pharmacy console, and waiting-room display. Built with Next.js and Supabase.
翻译准备中
取自仓库 README
正在加载完整 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.查看完整 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).