3.6 KiB
3.6 KiB
Troubleshooting Dashboard Data Kosong
🔍 Checklist Debugging
1. Cek Console Browser
Buka browser console (F12) dan cek:
- Apakah ada error?
- Apakah API call berhasil?
- Apakah response data ada?
Expected logs:
[Dashboard] Summary response raw: {total_count: 47, total_amount: 112000, ...}
[Dashboard] By Category response raw: {labels: [...], series: {...}}
[Dashboard] State date: 2025-12-16
[Dashboard] Parsed summary: {totalAmount: 112000, summary: {...}}
[Dashboard] Final counts: {personCount: 33, motorCount: 12, carCount: 2, totalAmount: 112000}
2. Cek API Response
Test langsung API endpoint:
# Login dulu untuk dapat token
curl -X POST http://localhost:8000/auth/v1/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"password"}'
# Test summary endpoint (ganti YOUR_TOKEN)
curl "http://localhost:8000/retribusi/v1/dashboard/summary?date=2025-12-16" \
-H "Authorization: Bearer YOUR_TOKEN"
# Expected response:
# {"success":true,"data":{"total_count":47,"total_amount":112000,...}}
3. Cek Data di Database
cd api-btekno
php bin/check_dashboard_data.php
Expected output:
- Entry Events: Ada data
- Daily Summary: Ada data untuk tanggal yang dipilih
- Test Query: Total Count > 0, Total Amount > 0
4. Cek Konfigurasi Frontend
File: retribusi (frontend)/public/dashboard/js/config.js
Pastikan BASE_URL benar:
// Untuk PHP built-in server
BASE_URL: 'http://localhost:8000'
// Untuk Laragon
BASE_URL: 'http://localhost/api-btekno/public'
5. Cek Default Date
File: retribusi (frontend)/public/dashboard/js/dashboard.js
Default date sudah di-set ke tanggal yang ada data:
const state = {
date: '2025-12-16', // Tanggal yang ada data
locationCode: '',
gateCode: ''
};
🐛 Masalah Umum
Masalah 1: Data Kosong (0)
Penyebab:
- Date tidak sesuai dengan tanggal yang ada data
- Data belum di-aggregate ke daily_summary
Solusi:
- Pilih tanggal yang ada data di filter date (2025-12-16)
- Atau aggregate data:
php bin/daily_summary.php 2025-12-16
Masalah 2: API Error 401
Penyebab:
- Token expired atau tidak valid
- Tidak ada Authorization header
Solusi:
- Login ulang
- Cek token di localStorage:
localStorage.getItem('token') - Cek apakah token masih valid
Masalah 3: API Error 404
Penyebab:
- Route tidak ditemukan
- Base URL salah
Solusi:
- Cek base URL di
config.js - Pastikan API server running
- Test health endpoint:
http://localhost:8000/health
Masalah 4: CORS Error
Penyebab:
- CORS tidak dikonfigurasi dengan benar
- Origin tidak diizinkan
Solusi:
- Cek
.envdi backend:CORS_ALLOWED_ORIGINS=* - Pastikan CORS middleware aktif
- Restart API server
✅ Quick Fix
Jika data masih tidak muncul, coba:
- Set date manual di browser console:
// Buka browser console (F12)
state.date = '2025-12-16';
loadSummaryAndCharts();
- Cek response langsung:
// Di browser console
const response = await apiGetSummary({ date: '2025-12-16' });
console.log('Response:', response);
- Force refresh:
- Hard refresh: Ctrl+Shift+R (Windows) atau Cmd+Shift+R (Mac)
- Clear cache dan reload
- Cek Network Tab:
- Buka DevTools > Network
- Cek request ke
/retribusi/v1/dashboard/summary - Lihat response body dan status code
📝 Expected Data untuk 2025-12-16
Berdasarkan test:
- Total Count: 47
- Total Amount: 112,000
- Person Walk: 33
- Motor: 12
- Car: 2
Jika data ini tidak muncul, ada masalah dengan:
- API call
- Response parsing
- Data rendering