Dental clinic CRM — the plan carries the sequence, each appointment binds to a step
A treatment plan is built tooth by tooth and split into ordered sessions spread over weeks; the treatment is a record in its own right, independent of any appointment. Each appointment attaches to a specific step, so when a step changes or a session is added the calendar moves with it and no appointment is left dangling. The invoice keeps no separate ledger: the procedure sits on the patient record, so what was billed and what was carried out are read from one place. Laravel runs the process, MySQL holds patients, plans and invoices. Written for a clinic; production steps and service routes fall outside it.
Read the case study →