Full-stack application

Dental Manager

Aplikasi operasional klinik gigi untuk mengelola riwayat perawatan, fee dokter, absensi, payroll, dan laporan dalam satu workflow.

Minta akses demoAkses login tersedia berdasarkan permintaan.
Tahun2026
Layanan
  • Application engineering
  • Cloudflare architecture
  • Deployment and CI/CD
Teknologi
  • React
  • TypeScript
  • Cloudflare Workers
  • D1
  • R2
  • Hono

Masalah dan kebutuhan

Proses administrasi klinik sebelumnya bergantung pada beberapa spreadsheet untuk mencatat perawatan pasien, menghitung fee dokter, mengolah absensi, dan menyiapkan payroll. Data yang saling berkaitan harus dipindahkan secara manual, sementara status review dan perubahan perhitungan sulit ditelusuri secara konsisten.

Dental Manager dibangun sebagai aplikasi internal yang menyatukan proses tersebut. Admin memperoleh kontrol penuh atas master data, transaksi, perhitungan, laporan, dan akun pengguna. Operator memperoleh akses terbatas untuk mencatat perawatan, meninjau absensi, mengajukan protes, melihat payroll sendiri, dan memeriksa aktivitas akunnya.

Implementasi aplikasi

Frontend menggunakan React dan TypeScript dengan TanStack Query untuk mengelola server state serta ECharts untuk visualisasi perbandingan periode. Workflow utama mencakup import XLSX dengan preview dan validasi, kalkulasi fee dokter dan payroll, review data, penguncian periode, serta export laporan dalam format XLSX, PDF, dan ZIP.

Perhitungan tidak hanya menghasilkan total akhir. Aplikasi menyimpan komponen fee, pajak, potongan, shift, keterlambatan, hari libur, lembur, tunjangan, dan adjustment agar hasil setiap periode dapat ditinjau sebelum dikunci. Audit log mencatat aktivitas penting dan membatasi visibilitas log berdasarkan role pengguna.

Arsitektur production

Frontend SPA disajikan melalui Cloudflare Workers Static Assets. API berjalan pada Cloudflare Workers menggunakan Hono, sedangkan D1 menyimpan data operasional dan R2 menyimpan upload serta arsip laporan. Route API berada pada domain yang sama dengan frontend sehingga aplikasi tetap memakai prefix /api tanpa mengekspos endpoint lintas origin ke browser.

Backend mempertahankan bentuk API dari implementasi FastAPI sebelumnya selama migrasi ke runtime Cloudflare. Data SQLite diekspor ke SQL yang kompatibel dengan D1, schema diterapkan melalui migration bernomor, lalu workflow berisiko tinggi diverifikasi melalui parity test dan pengujian kalkulasi.

Keamanan dan operasi

Autentikasi menggunakan JWT dengan password hash bcrypt-compatible. Otorisasi Admin dan Operator diterapkan pada route backend, bukan hanya pada navigasi frontend. CORS dibatasi ke origin production, preview Cloudflare, dan environment lokal yang ditentukan.

Observability Workers aktif untuk API production. Arsip laporan di R2 memiliki masa simpan dan dibersihkan oleh scheduled Worker. Build frontend menjalankan pemeriksaan TypeScript sebelum deployment, sedangkan backend menjalankan typecheck, test, migration D1, dan deployment Worker dari branch utama.