# LOGBOOK PPDS (Program Pendidikan Dokter Spesialis)

Aplikasi digital untuk mencatat dan mengelola logbook kegiatan akademik dan klinis bagi peserta program pendidikan dokter spesialis.

## 📋 Fitur Utama

- **Sistem Login & Authentication** - Keamanan akun dengan session management
- **Dashboard** - Ringkasan statistik aktivitas dan logbook
- **Kalender Interaktif** - Visualisasi aktivitas per tanggal
- **Pencatatan Aktivitas** - Catat berbagai jenis aktivitas:
  - Kasus klinis (rawat inap, rawat jalan, gawat darurat)
  - Prosedur (operasi, diagnostik, terapeutik)
  - Pembelajaran (diskusi, presentasi, kuliah)
  - Penelitian
  - Seminar dan workshop
  - Publikasi ilmiah

- **Manajemen Data** - Simpan detail aktivitas lengkap (lokasi, pembimbing, jumlah kasus, dll)
- **Responsive Design** - Kompatibel dengan desktop, tablet, dan mobile

## 🛠️ Persyaratan

- PHP >= 7.4
- MySQL >= 5.7
- XAMPP atau server PHP lokal
- Browser modern (Chrome, Firefox, Safari, Edge)

## 📦 Instalasi & Setup

### 1. Database Setup

1. Buka phpMyAdmin (biasanya di http://localhost/phpmyadmin)
2. Buat database baru dengan nama `logbook_ppds`
3. Pilih database tersebut
4. Buka tab "SQL" dan paste seluruh isi file `database/database.sql`
5. Klik "GO" untuk membuat tabel dan data default

### 2. Konfigurasi File

Edit file `php/config.php` jika diperlukan:

```php
define('DB_HOST', 'localhost');      // Host database
define('DB_USER', 'root');           // Username MySQL
define('DB_PASS', '');               // Password MySQL (kosong untuk default XAMPP)
define('DB_NAME', 'logbook_ppds');   // Nama database
```

### 3. Akses Aplikasi

Pastikan folder project berada di:
- **Windows**: `C:\xampp\htdocs\logbook-ppds`
- **Mac**: `/Applications/XAMPP/xamppfiles/htdocs/logbook-ppds`
- **Linux**: `/opt/lampp/htdocs/logbook-ppds`

Akses melalui browser:
```
http://localhost/logbook-ppds/
```

## 🔐 Login Demo

Gunakan kredensial berikut untuk testing:

- **Username**: `zulfadli`
- **Password**: `password123`

## 📁 Struktur Folder

```
logbook-ppds/
├── index.html              # Halaman dashboard utama
├── login.html              # Halaman login
├── css/
│   └── style.css          # Styling aplikasi
├── js/
│   ├── script.js          # Script umum (sidebar, modal, dll)
│   └── app.js             # Script aplikasi (calendar, form, API)
├── php/
│   ├── config.php         # Konfigurasi database
│   ├── session.php        # Manajemen session
│   ├── login_process.php  # Proses login
│   ├── logout.php         # Proses logout
│   └── api.php            # API endpoints
├── database/
│   └── database.sql       # Schema dan data awal
└── assets/
    └── img/               # Folder untuk logo dan gambar
```

## 🗂️ Struktur Database

### Tabel Utama

1. **users** - Data pengguna (dokter spesialis)
2. **log_categories** - Kategori aktivitas
3. **activity_types** - Jenis aktivitas spesifik
4. **logs** - Catatan aktivitas utama
5. **procedures** - Detail prosedur dalam aktivitas
6. **case_details** - Detail kasus dalam aktivitas

## 🚀 API Endpoints

### GET Endpoints

- `php/api.php?action=get_logs&year=2026&month=02` - Ambil logs bulan tertentu
- `php/api.php?action=get_statistics&year=2026` - Ambil statistik tahun tertentu
- `php/api.php?action=get_activity_types` - Ambil daftar jenis aktivitas

### POST Endpoints

- `php/api.php` dengan `action=save_log` - Simpan log baru
- `php/login_process.php` - Proses login

## 📝 Cara Menggunakan

### 1. Login
- Masukkan username dan password
- Akan diarahkan ke dashboard

### 2. Dashboard
- Lihat ringkasan statistik aktivitas
- Lihat aktivitas terbaru

### 3. LogBook
- Klik "Add Log" untuk membuat catatan baru
- Isi formulir dengan detail aktivitas
- Pilih tanggal, jenis aktivitas, judul, dan deskripsi
- Tambahkan informasi tambahan (lokasi, pembimbing, dll)
- Klik "Simpan"

### 4. Kalender
- Navigasi antar bulan dengan tombol prev/next
- Tanggal dengan background hijau menandakan ada log
- Klik tanggal untuk melihat detail log pada hari tersebut

## 🔧 Customization

### Menambah Aktivitas Baru

Edit `database/database.sql` di bagian `INSERT INTO activity_types`:

```sql
INSERT INTO activity_types (type_name, category_id, description) VALUES
('Nama Aktivitas', 1, 'Deskripsi');
```

Nilai `category_id`:
- 1 = Kasus Klinis
- 2 = Prosedur
- 3 = Pembelajaran
- 4 = Penelitian
- 5 = Seminar
- 6 = Publikasi

### Mengganti Logo

1. Letakkan logo di folder `assets/img/`
2. Beri nama `logo.png`
3. Update referensi di `login.html` jika nama berbeda

## 🐛 Troubleshooting

### Error: "Connection failed"
- Periksa apakah MySQL running
- Verifikasi kredensial database di `php/config.php`

### Error: "Unauthorized"
- Pastikan session aktif/sudah login
- Clear browser cache dan cookies
- Login kembali

### Kalender tidak tampil
- Buka developer console (F12) untuk melihat error
- Pastikan file `js/app.js` terload dengan baik

### Logo tidak tampil
- Pastikan file ada di `assets/img/logo.png`
- Check path relatif di `login.html`

## 📚 Referensi

- PHP Manual: https://www.php.net/manual/
- MySQL: https://dev.mysql.com/doc/
- JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/

## 📄 Lisensi

© 2026 LOGBOOK PPDS. Semua hak dilindungi.

## 📞 Support

Untuk bantuan dan saran, silakan hubungi administrator sistem.
