01The problem
A clinic site has to do more than look trustworthy: patients want to see treatments, prices and dentists, then book a real slot without phoning. The scheduler needed genuine availability (doctor shifts, existing bookings, holidays, minimum notice) and protection against double-booking, while staff needed a simple place to manage appointments.
02Who it is for
Patients looking for a dentist and booking visits; front-desk staff managing appointments, messages and clinic holidays.
03Features
- Home with hero, treatments, why-us, team, before/after slider, reviews, FAQ, map
- Treatments list with category filter and auto-generated detail pages
- 4-step booking wizard: treatment, dentist, date & time, details
- Live calendar and time slots from doctor schedules, bookings and holidays
- Double-booking protection (server re-check + database unique key)
- Confirmation with reference number and add-to-calendar (.ics)
- Email notifications to clinic and patient
- Staff dashboard: appointments with search, filters and status, messages, holiday blocking
- Click-to-call, WhatsApp button, sticky mobile Call/Book bar, emergency banner
- Per-page SEO, Open Graph and schema.org Dentist JSON-LD
- Accessible: skip link, keyboard-operable slider, accordion and calendar, reduced motion
04Pages & screens
- Home
- Treatments
- Treatment detail (/services/:slug)
- Our Dentists
- About
- Smile Gallery
- Patient Info
- Blog and blog post
- Contact
- Book appointment (4 steps + confirmation)
- Privacy
- 404
- Staff login
- Staff dashboard
05Stack
06How I built it with AI
Built end-to-end with an AI coding assistant directing a full-stack scope: React/Tailwind frontend, plain-PHP REST API, MySQL schema and seed data. The AI also produced a 21-page Developer Guide (architecture, folder structure, editing content without React knowledge, how slots are calculated, adding pages/endpoints/tables, deployment on Apache/cPanel or Nginx, go-live checklist and security notes) so the project can be handed to another developer. No prompt file was supplied for this project.
07Design highlights
Slot engine: dentist shifts on a 30-minute grid, keeping only starts where the whole treatment fits, minus existing bookings, blocked dates and minimum notice
Deep links like /book?service=dental-implants&doctor=dr-arjun-rao pre-fill the wizard from 'Book this treatment' and 'Book with Dr…' buttons
Content lives in plain data files (site.js, services.js, doctors.js) so non-developers can edit clinic details, treatments and dentists
Mobile-first conversion aids: sticky Call/Book bar, WhatsApp button and an emergency strip in the top bar
Security baked in: prepared statements, server-side validation, honeypot + rate limiting, hashed passwords and tokens, CORS whitelist
08Gallery
Screens from the working build; click any image to zoom. Names, contacts and figures in the screens are demo content.
