Case study & technical overview. Canin is a full practice-management application built for a specialist dental clinic: patient registration, per-tooth clinical charting, lab orders, prescriptions, financials, and multi-user access control, delivered as an installable web app in three languages.
A Cyborg Tech Creative Agency product. This is a public research and case-study repository. The product source is private to protect patient data.
A dental clinic runs on records that a general-purpose tool handles badly: every patient has a mouth-shaped chart, every visit adds to a per-tooth history, and every treatment threads through lab work, prescriptions, and billing. Off-the-shelf clinic software is either English-only, cloud-locked, or priced for large hospitals. The clinic needed something that spoke its staff's languages, ran on modest local infrastructure, and modeled teeth as first-class objects.
Canin covers the full clinical and administrative workflow:
- Patients — registration and complete patient histories
- Per-tooth charting — clinical records attached to individual teeth
- Lab orders — track work sent to and returned from the lab
- Prescriptions — issue and record prescriptions per visit
- Financials — billing, payments, and outstanding balances
- Access control — multi-user accounts with role-based permissions
- Trilingual — Farsi, Pashto, and English, with full RTL support
- Installable — a Progressive Web App with offline support
| Layer | Choice | Why |
|---|---|---|
| Backend | PHP 7.4+, CodeIgniter 3 (MVC) | Runs on the clinic's existing shared hosting; no build step |
| Database | MariaDB / MySQL | Ubiquitous, cheap to host and back up locally |
| Frontend | Bootstrap 5, AJAX, DataTables, Select2, Toastr | Fast, dense data tables without a SPA framework |
| Dates | Jalali / Shamsi calendar throughout | The calendar staff actually use |
| i18n | Cookie-based fa / pa / en, RTL for fa/pa | Trilingual from the ground up, not translated after |
| Delivery | PWA (manifest + service worker) | Installable, resilient on unreliable connections |
The design choices all point the same way: run reliably on modest, local infrastructure, in the languages the staff read, without asking a small clinic to adopt cloud tooling it can't depend on.
The clinical core is deliberately dense — the main administrative controller alone spans well over a hundred actions covering the full front-desk and clinical workflow. Rather than split that across a microservice sprawl, Canin keeps a single deployable unit that one person can host, back up, and reason about.
In production use. The application source, database schema, and any real records are kept in a private repository. This repository exists to document the system and the engineering decisions behind it.