DentBook — Dental Appointment System with Online Booking
DentBook is a complete, self-hosted appointment system for dental clinics that runs on almost any PHP hosting. It is written in plain PHP 8 with a SQLite database, so there is no MySQL server to configure, no framework and no build step: upload the files, open the web installer, and your clinic takes online bookings in about a minute.
Patients book from your public page: they pick a treatment, a dentist and a day, and DentBook offers only the genuinely free time slots — computed live from your working hours, each treatment’s duration and every existing appointment. When a patient confirms, the slot is re-checked inside a database transaction, so two patients can never take the same slot. Every booking gets a reference code (DB-XXXXXX) and a self-service page where patients view or cancel their own visit with the reference + their phone number — no patient accounts, no passwords for them to forget.
Staff get a day & week calendar color-coded by status, full patient records with allergies and chart notes, one-click reminders and a dashboard with today’s visits, weekly status counts and monthly revenue from completed appointments.
Fully bilingual (v1.1.0). The entire interface (public booking pages, the patient self-service page, the whole staff area and the installer) is available in English and Spanish, with a visible EN | ES switcher and an admin-set default language. Weekday and month names in the calendar are localized too, and reminder emails are written in the site’s default language.
FEATURES
- Fully bilingual interface (English / Spanish) — visible EN | ES switcher on the public pages, the staff area and the installer; the choice is remembered (session + 30-day cookie)
- Admin-set default language: new visitors see the site in that language, and reminder emails are written in it too
- Localized calendar: weekday and month names render in the selected language
- Public clinic page: services with duration and price, dentists, weekly opening hours
- Online booking in two steps: treatment + dentist (or "no preference") + date, then the live free slots for that day
- Real slot engine: duration-aware slots on your configured grid, past times never offered
- Double-booking protection: live slot computation plus a transactional conflict re-check at the moment of booking
- Booking reference (DB-XXXXXX) and a patient self-manage page (reference + phone): view the visit, cancel online up to the cutoff you configure
- Day & week staff calendar, color-coded by status (Booked / Confirmed / Completed / Cancelled / No-show)
- Appointment detail: change status, reschedule with a free-slot picker, patient note vs staff-only internal note, send reminder
- Appointments list with date-range, dentist, status and patient/reference search filters
- Patients manager: contact details, birth date, allergies and chart notes, full visit history per patient
- Services manager (name, duration, price, active)
- Dentists manager with per-dentist days off that the booking engine respects
- Reminders page with one-click send and a full mail log
- Dashboard: today’s appointments, this week’s counts by status, upcoming visits, patients on file, revenue from completed appointments this month
- Users with admin / receptionist roles
- Settings: working hours per weekday, slot step minutes, booking window, cancellation cutoff, reminder window, timezone, currency symbol, default language
- Web installer with optional demo data (2 dentists, 4 treatments, 3 patients and 8 sample appointments)
- Secure by design: PDO prepared statements, hashed passwords, CSRF tokens, escaped output, protected data folder
- Hand-written responsive CSS — no CDN, no external assets
- Full documentation included inside the download
REQUIREMENTS
- PHP 8.0 or higher with the PDO SQLite extension enabled
- A web server (Apache, Nginx or similar) — shared hosting is fine
- No MySQL or any other database server required
- Optional: PHP mail() enabled on the host if you want live reminder emails (everything is logged either way)
INSTALLATION
- Upload the contents of the zip to your web hosting (or a subfolder of it) and make sure the data folder is writable by PHP.
- Open install.php in your browser (for example yourdomain.com/dentbook/install.php). You can switch the installer between English and Spanish with the EN | ES toggle.
- Fill in the clinic name, timezone and your admin account, optionally tick Create demo data, and click Install now.
- Log in at login.php and configure working hours, dentists, services and the default language under Settings.
- Full step-by-step documentation is included inside the download (documentation/index.html).
DEMO LOGINS (seeded by the installer’s demo data)
- Admin: admin@example.com / Admin123!
- Receptionist: reception@example.com / Staff123!
SUPPORT
Support is provided through the author’s CodeGrape profile (carloslopezrd): ask a question or open a support request from the item page and you will get help with installation and usage.