Build in Public — Live Progress

Development Roadmap & Progress

Transparency penuh — semua fase development, timeline, dan progress live. Diupdate setiap kali fitur baru di-capture.

Total Fitur

93

Live

93

Completion

100%

Kategori

20

Overall Completion 100%

Progress per Kategori (Business Flow)

Sebuah kategori dianggap "live" kalau semua fitur di dalamnya sudah punya screenshot real dari panel admin.

01. Dashboard & Ringkasan

In Progress
1/1 fitur 100%

02. Akuisisi & Marketing — A1 / PRD §17

In Progress
3/3 fitur 100%

03. Multi-Klinik & Staff — PRD §1 & §11

In Progress
5/5 fitur 100%

04. Registrasi Pasien — A2 / PRD §2

In Progress
7/7 fitur 100%

05. Appointment & Scheduling — A3-A4 / PRD §3

In Progress
6/6 fitur 100%

06. Examination & EDR — A5 / PRD §4

In Progress
10/10 fitur 100%

07. Imaging & Radiography — PRD §5

In Progress
2/2 fitur 100%

08. Treatment Planning — A6-A7 / PRD §6

In Progress
5/5 fitur 100%

09. Treatment Execution — A8 / PRD §10a-g

In Progress
6/6 fitur 100%

10. Recall & Follow-up — A11 / PRD §10g

In Progress
1/1 fitur 100%

11. Billing & Payment — A9 / PRD §7

In Progress
8/8 fitur 100%

12. Insurance Claims — A10 / PRD §8

In Progress
3/3 fitur 100%

13. Inventory, Lab & Sterilisasi — PRD §9-10

In Progress
9/9 fitur 100%

14. Komunikasi & Reminder — PRD §13

In Progress
4/4 fitur 100%

15. AI-Powered Features — PRD §15

In Progress
5/5 fitur 100%

16. Laporan & Analitik — PRD §16

In Progress
3/3 fitur 100%

17. Content Management

In Progress
4/4 fitur 100%

18. Programmatic SEO — PRD §17

In Progress
4/4 fitur 100%

19. Media & Notifications

In Progress
2/2 fitur 100%

20. System & Compliance — PRD §18

In Progress
5/5 fitur 100%

Development Roadmap — Klinik Gigi Unicorn

Milestone & Sprint Plan


Overview Timeline

Phase 1: MVP Core          Phase 2: Clinical EDR      Phase 3: Revenue Ops
   6 minggu                    8 minggu                    6 minggu
  ───────────────────      ────────────────────       ───────────────────
  ├─ Setup Laravel         ├─ Odontogram digital     ├─ Billing & invoice
  ├─ Auth + RBAC           ├─ Treatment plans        ├─ Payment multi method
  ├─ Multi-branch          ├─ Diagnoses + ICD-10     ├─ Insurance claims
  ├─ Patient CRUD          ├─ Radiograph upload      ├─ Deposit & cicilan
  ├─ Appointment basic     ├─ Prescriptions          ├─ Discount & promo
  ├─ Doctor & staff        ├─ Consent digital        ├─ Package & bundle
  ├─ Dashboard owner       ├─ Clinical SOAP notes    ├─ Dokter fee-splitting
  └─ Programmatic SEO      ├─ Periodontal chart      └─ Basic reporting
                           └─ Lab cases
                           
Phase 4: Komunikasi & AI    Phase 5: Portal & Scale   Phase 6: Unicorn Mode
   5 minggu                    5 minggu                   4 minggu
  ───────────────────       ────────────────────      ───────────────────
  ├─ WA reminders           ├─ Patient portal        ├─ AI Odontogram
  ├─ Notification system    ├─ Online booking        ├─ AI X-ray analysis
  ├─ Chat with patients     ├─ Payment online        ├─ AI Chatbot
  ├─ Email templates        ├─ Review & rating       ├─ AI Predictive
  ├─ Recall automation      ├─ PWA support           ├─ Performance tuning
  ├─ Review collection      ├─ Mobile responsive     ├─ Load testing
  └─ Birthday automation    ├─ API for 3rd party     └─ Production deploy
                            └─ Tele-dentistry

Total: ~34 minggu (~8.5 bulan) — 1 developer full-time Dengan 2-3 developer senior: bisa dipangkas ke 4-5 bulan


Phase 1 — MVP Core (6 minggu)

Sprint 1.1: Foundation (Week 1-2)

Task Detail Prioritas
Laravel 12+ installation Composer, Breeze/Fortify auth scaffold P0
Database migration Semua 62 tabel section 1, 2, 9 P0
RBAC system roles, permissions, role_permission tables + middleware P0
Multi-branch management clinics CRUD admin, scope data per cabang via middleware P0
Auth system Login, register, forgot password, email verification P0
Admin dashboard shell Layout, sidebar, top bar, breadcrumb P0
User CRUD Owner bisa CRUD semua user di semua cabang P0
Activity logger Audit trail basic (create/update/delete) P1

Sprint 1.2: Patient Management (Week 3)

Task Detail Prioritas
Patient CRUD Form registrasi, list, detail, edit, soft delete P0
RM Number auto-generate Format RM-YYYYMMDD-XXXX P0
Import/export patient CSV import, Excel export P1
Patient search Search by nama, nik, phone, rm_number P0
Patient document upload KTP, BPJS card, referral letter P1
Patient segmentation New, Active, Dormant, VIP logic P2
Family account linking patient_family table + UI P2

Sprint 1.3: Appointment Basic (Week 4)

Task Detail Prioritas
Doctor profile setup Dokter CRUD, spesialisasi, STR/SIP P0
Working hours Set jam operasional per klinik, per dokter P0
Dental chairs Kelola unit kursi gigi per cabang P0
Appointment CRUD Buat janji, edit, cancel, reschedule P0
Calendar view dokter FullCalendar / similar, lihat slot tersedia vs terisi P0
Slot detection Auto hitung slot berurutan berdasarkan working_hours + appointment yang sudah ada P0
Status flow Scheduled → Confirmed → Waiting → In_Treatment → Done P0
Walk-in support FO bisa langsung buat appointment walk-in P0
Conflict detection System cegah double booking P0

Sprint 1.4: Dashboard & SEO (Week 5-6)

Task Detail Prioritas
Owner dashboard Revenue card, patient count, appointment today, top doctor P0
Chart.js integration Revenue chart 30 hari, patient trend P1
Multi-branch switch Owner bisa switch cabang, data terfilter P0
Programmatic SEO base SEO tables migration, seeder kota Indonesia P0
SEO routes /best-dentist-{city} dynamic route P0
SEO page generator Auto generate title, meta, content 300+ kata, JSON-LD P0
Sitemap.xml dynamic Generate from clinics + seo pages P0
Robots.txt Allow SEO routes P0

Phase 2 — Clinical EDR (8 minggu)

Sprint 2.1: Examination & Diagnosis (Week 7-8)

Task Detail Prioritas
Visit management Visit record dari appointment → check-in → check-out P0
Anamnesis form Chief complaint, medical history, dental history P0
Extra-oral exam form TMJ, lymph nodes, lips, profil P1
Intra-oral exam form Soft tissue, gingiva, oral hygiene P1
Vital signs Blood pressure, heart rate, temp, weight, BMI P1
ICD-10 dental codes Seeder kode ICD-10 K00-K14 P0
Diagnosis CRUD Pasang diagnosis per visit, ICD-10 + custom P0
Allergy management patient_allergies table + UI P0

Sprint 2.2: Odontogram Digital (Week 9-10)

Task Detail Prioritas
HTML5 Canvas odontogram Gambar gigi permanent (11-48) + decidious (55-85) P0
Tooth surface interaction Klik gigi → pilih surface M/D/B/L/P/O/I/All P0
Condition palette 25+ kondisi gigi siap klik P0
Real-time condition save AJAX update ke tooth_conditions table P0
Odontogram history viewer Bandingkan odontogram antar kunjungan P1
Print odontogram HTML-to-PDF P2
Odontogram mobile-responsive Touch interaction untuk tablet P1

Sprint 2.3: Treatment Plans (Week 11-12)

Task Detail Prioritas
Treatment catalog Katalog tindakan + kategori + harga P0
Treatment price management Harga bertingkat: umum, member, asuransi P0
Treatment plan builder Drag/drop atau checkbox urutan treatment P0
Multi-phase plan Phase 1, 2, 3 treatment P0
Cost estimation Auto-total estimasi biaya per plan P0
Patient approval flow Draft → Proposed → Approved P1
Treatment-to-invoice bridge Plan item bisa langsung jadi invoice item P1

Sprint 2.4: Clinical SOAP Notes (Week 13)

Task Detail Prioritas
SOAP notes editor Subjective, Objective, Assessment, Plan per visit P0
Treatment done recording Catat treatment yang sudah selesai hari ini P0
Auto-prescription Dari SOAP plan → generate resep P1
Prescription CRUD Resep obat, print/cetak resep P1
Progress notes timeline Lihat history notes per pasien P1

Sprint 2.5: Imaging & Lab (Week 14)

Task Detail Prioritas
Radiograph upload Upload periapical, OPG, CBCT, cephalometric P0
Radiograph viewer Lightbox-style image viewer P1
Intraoral camera Upload foto intraoral before/after P1
Before/after comparison Side-by-side image viewer P2
Dental lab CRUD Kelola dental_labs + price list P0
Lab case management Case CRUD, status tracking P0
Lab case timeline Tracking history per case P1

Phase 3 — Revenue Operations (6 minggu)

Sprint 3.1: Billing Engine (Week 15-16)

Task Detail Prioritas
Invoice generation Auto dari treatment yang selesai di visit P0
Invoice CRUD Draft, edit, issue, void P0
Multi-item invoice Lebih dari 1 treatment per invoice P0
Discount engine Nominal, persentase, discount code P0
Tax handling PPN 11% / tax configurable P0
Print invoice HTML-to-PDF invoice template P1
Invoice numbering INV-YYYYMMDD-XXXX auto P0

Sprint 3.2: Payment System (Week 17-18)

Task Detail Prioritas
Payment CRUD Cash, debit, credit, QRIS, transfer P0
Deposit management Deposit masuk → auto-kurangi invoice P1
Installment system Cicilan dengan jadwal pembayaran P1
Payment tracking Invoice balance, paid vs unpaid P0
Receipt / kwitansi Print bukti pembayaran P1
Patient balance view Total yang sudah & belum dibayar P0

Sprint 3.3: Insurance Claims (Week 19)

Task Detail Prioritas
Insurance provider CRUD Tambah provider asuransi P0
Insurance plan management Plan per provider, coverage %, limit P0
Patient insurance link Assign asuransi ke pasien P0
Claim generation Auto hitung cover + co-pay P0
Claim status flow Draft → Submitted → Approved → Paid → Rejected P0
Claim tracking dashboard Monitor klaim pending, approval rate P1
BPJS VClaim integration Jika API tersedia P2

Sprint 3.4: Advanced Financial (Week 20)

Task Detail Prioritas
Package builder Buat paket treatment (ex: scaling + bleaching) P1
Package purchase Pasien bisa beli paket P1
Dokter fee-splitting Set komisi % per dokter, laporan komisi P1
Revenue reports Revenue per hari/minggu/bulan, per cabang, per dokter P0
Export reports Export to Excel, PDF P1
Expense tracking Catat pengeluaran selain treatment (opsional) P2

Phase 4 — Communication & Inventory (5 minggu)

Sprint 4.1: Inventory Management (Week 21-22)

Task Detail Prioritas
Material catalog CRUD material gigi + kategori P0
Stock in Purchase order → goods receipt → stock bertambah P0
PO to supplier Purchase order CRUD + tracking P0
Stock usage auto-deduct Nurse catat material → auto potong stok P0
Min stock alert Notifikasi jika stok < minimum P1
Expiry date tracking Batch + expiry date, alert near expiry P1
Stock opname Fisik vs sistem, adjustment P1

Sprint 4.2: Communication (Week 23-24)

Task Detail Prioritas
Message templates Template WA/email per trigger event P0
Appointment reminders H-7, H-2, H-1 auto WhatsApp (via API) P0
WhatsApp integration 3rd party WA Business API (WATI, WABLAS, etc.) P0
Email notifications Queue-based email via Laravel Notification P1
In-app notifications Bell icon + notification center P0
Recall system Auto-detect 6 bulan → kirim reminder P1
Birthday automation Kirim ucapan ulang tahun P2
Follow-up reminder 3 hari post-treatment follow-up P1

Sprint 4.3: Review & Feedback (Week 25)

Task Detail Prioritas
Review collection Request review via WA setelah treatment P1
Review management Approve/reject review, admin reply P1
Rating dashboard Average rating per cabang, per dokter P1
Chat system Internal chat klinik-pasien (async) P2

Phase 5 — Patient Portal & Scale (5 minggu)

Sprint 5.1: Patient Portal (Week 26-27)

Task Detail Prioritas
Patient registration online Daftar akun pasien via portal P0
Patient dashboard Lihat profil, history, upcoming appointment P0
Medical record viewer Pasien lihat odontogram & treatment history sendiri P1
Invoice viewer & payment Lihat tagihan, bayar online P1
Document upload Upload KTP, asuransi, rujukan P1
Portal layout Frontend untuk patient portal (terpisah dari admin) P0

Sprint 5.2: Online Booking (Week 28-29)

Task Detail Prioritas
Public booking page Pilih cabang → dokter → layanan → slot → konfirmasi P0
Real-time slot availability AJAX check slot per dokter per tanggal P0
Booking confirmation Auto WA/email konfirmasi booking P0
Cancel/reschedule self-service Pasien bisa cancel/reschedule sendiri via portal P1
Booking rules Max advance booking, min before booking, no-show policy P1

Sprint 5.3: Tele-dentistry (Week 30)

Task Detail Prioritas
Video consultation Integrasi Jitsi Meet / Zoom SDK P2
Screen sharing Share odontogram & xray ke pasien P2
E-prescription Dokter bisa resepkan via tele-consult P2
Tele-consult booking Booking khusus tele-consult P2

Phase 6 — AI & Unicorn Mode (4 minggu)

Sprint 6.1: AI Provider Integration (Week 31)

Task Detail Prioritas
AI Provider Manager Generic provider config (OpenAI-compatible, Anthropic-format, Gemini-format) P0
Dynamic model selector User input base_url, api_key, model name sendiri P0
No hardcoded providers Sesuai CLAUDE.md policy — semua via admin UI P0
Provider test connection Button "Test Connection" per provider P1
AI usage logging Track token usage & cost per clinic P1

Sprint 6.2: AI Features (Week 32-33)

Task Detail Prioritas
AI Chatbot Assist booking, FAQ, basic triage P1
AI Odontogram Analysis Auto-detect caries dari foto intraoral P2
AI Treatment Recommendation Rekomendasi treatment plan berdasarkan diagnosis P2
AI Radiograph Analysis Deteksi caries, bone loss dari OPG P2
AI Predictive Analytics Prediksi revenue, no-show, inventory needs P2
AI SOAP generator Draft SOAP notes dari anamnesis + diagnosis P1

Sprint 6.4: Production Readiness (Week 34)

Task Detail Prioritas
Performance audit Lighthouse, query optimization, N+1 fix P0
Cache strategy Redis cache untuk dashboard, appointments, lookup data P0
Queue setup Horizon / queue worker untuk reminders, export, AI jobs P0
Load testing k6 / Artillery, pastikan 1000 concurrent users P1
Security audit Penetration test, SQL injection, XSS, CSRF, rate limiting P0
Backup automation DB + file backup ke S3-compatible storage P0
Monitoring setup Laravel Telescope, Sentry, uptime monitoring P1
Deployment pipeline CI/CD via GitHub Actions, zero-downtime deploy P1
Documentation Admin user manual, API docs (Scramble/Scribe) P1

Technical Stack (Finalized)

Layer Technology
Backend Laravel 12+ (PHP 8.2+)
Frontend Admin Laravel Livewire 3 + Alpine.js + Tailwind CSS
Frontend Portal Blade + Tailwind CSS (SSR untuk SEO)
Database MySQL 8.0+ with InnoDB
Cache & Queue Redis (predis)
Search Laravel Scout + MySQL Fulltext / Meilisearch
File Storage Local (dev) / S3-compatible (production)
Real-time Laravel Reverb / Pusher (opsional)
Charts Chart.js via Laravel component
Calendar FullCalendar.js
PDF DomPDF / Spatie Laravel-PDF
Excel Laravel Excel (Maatwebsite)
Odontogram HTML5 Canvas + custom JS
Authentication Laravel Fortify + Sanctum (API)
RBAC Spatie Laravel-Permission
Audit Spatie Laravel-Activitylog
Debug Laravel Telescope / Debugbar
Testing Pest PHP

Success Metrics

Metric MVP Target Unicorn Target
Waktu booking pasien < 3 menit < 1 menit
Waktu odontogram update < 30 detik < 5 detik
Invoice processing < 2 menit < 30 detik
Page load (dashboard) < 3 detik < 1 detik
No-show rate reduction 30% 50%+
Admin time saved per patient 40% 70%+