WA-KLINIK adalah sistem manajemen klinik terintegrasi dengan WhatsApp yang dirancang khusus untuk Klinik dr. Angga (Chiropractic & Chronic Pain Management). Sistem ini menggabungkan kemampuan AI untuk berinteraksi dengan pasien melalui WhatsApp, manajemen jadwal praktik, dan pengelolaan data pasien dalam satu platform yang mudah digunakan.

Core Features

1. AI-Powered WhatsApp Bot

  • Chatbot cerdas dengan integrasi OpenRouter/OpenAI
  • Respons otomatis untuk pertanyaan umum pasien
  • Pembuatan jadwal appointment via chat
  • Normalisasi nomor telepon otomatis untuk mencegah duplikasi

2. Schedule Management

  • Kalender mingguan interaktif dengan drag-and-drop
  • Pengaturan jam praktik, istirahat, dan hari libur
  • Blokir otomatis untuk tanggal libur nasional
  • Statistik harian (total appointment, gender, kontrol/reservasi)

3. Patient Management

  • Database pasien terintegrasi
  • Riwayat keluhan dan kunjungan
  • Pencarian dengan normalisasi nomor HP
  • Laporan per periode

4. Multi-Instance Support

  • Kelola multiple WhatsApp instances
  • Role-based access (superadmin, admin)
  • Filter data per instance

Tech Stack

Component Technology
Backend Node.js + Express.js
Database MySQL + Sequelize ORM
Cache Redis
WhatsApp WUZAPI Integration
AI OpenRouter / OpenAI API
Frontend EJS Templates + Vanilla JS
Realtime Socket.IO

Screenshots

Login Page

Halaman login dengan desain modern dan aman.

Login Page

Dashboard

Overview statistik klinik dengan grafik dan quick actions.

Dashboard

Chat History

Riwayat percakapan WhatsApp dengan pasien, terintegrasi dengan AI.

Chat History

Patient Management

Manajemen data pasien dengan pencarian dan filter.

Patients

Schedule (Jadwal Praktik)

Kalender interaktif dengan drag-and-drop untuk mengatur jadwal.

Schedule

Reports (Laporan)

Laporan kehadiran dan statistik per periode.

Reports

Instances (WhatsApp Instances)

Kelola multiple WhatsApp instances dengan status koneksi.

Instances

Bot Settings (Pengaturan AI)

Konfigurasi AI provider, model selection dengan search, dan system prompt.

Bot Settings

Mobile Responsive

Sistem ini fully responsive untuk penggunaan di mobile.

Mobile Dashboard

Mobile Dashboard

Mobile Schedule

Mobile Schedule

Key Implementation Details

Phone Number Normalization

Sistem menggunakan normalisasi nomor telepon untuk mencegah duplikasi data pasien:

function normalizePhone(phone) {
  // Remove WhatsApp suffixes
  let normalized = phone.replace(/@s\.whatsapp\.net|@c\.us/g, '');
  // Remove non-digits except +
  normalized = normalized.replace(/[^\d+]/g, '');
  // Handle Indonesian formats
  if (normalized.startsWith('+62')) {
    normalized = normalized.slice(1);
  } else if (normalized.startsWith('0')) {
    normalized = '62' + normalized.slice(1);
  }
  return normalized;
}

Holiday Calendar Blocking

Jadwal praktik otomatis memblokir tanggal libur yang sudah di-setting:

// Load holidays and block calendar cells
const holiday = calendarHolidays.find(h => h.date === dateStr);
if (holiday) {
  isUnavailable = true;
  unavailableReason = holiday.name;
}

Searchable Model Dropdown

Fitur pencarian model AI untuk memudahkan pemilihan dari 100+ model OpenRouter:

  • Filter real-time saat mengetik
  • Grouping berdasarkan tier harga (GRATIS, BUDGET, STANDARD, PREMIUM)
  • Informasi harga dan context length

Deployment

Docker Support

docker-compose up -d

Manual Setup

npm install
cp .env.example .env
# Configure .env
npm start

API Endpoints

Endpoint Method Description
/auth/login POST User authentication
/schedule/api/appointments GET/POST Manage appointments
/patients/api GET/POST Patient CRUD
/bot/webhook/:token POST WhatsApp webhook
/chat-history/api/conversations GET Chat history

Conclusion

WA-KLINIK adalah solusi lengkap untuk manajemen klinik modern yang mengintegrasikan komunikasi WhatsApp dengan AI. Sistem ini dirancang untuk meningkatkan efisiensi operasional klinik dan pengalaman pasien.


Built with Node.js, Express, MySQL, Redis, and AI-powered by OpenRouter