63 lines
2.3 KiB
Markdown
63 lines
2.3 KiB
Markdown
# Dapodik Sync — Pre-Implementation Audit
|
|
|
|
| # | Item | Status | Notes |
|
|
|---|------|--------|-------|
|
|
| 1 | Students dashboard page + API | **EXISTS** | GET/POST/PUT/DELETE /api/academic/students; GET /dashboard/academic/students |
|
|
| 2 | Existing Dapodik service code | **MISSING** | No DapodikClient or sync logic; only comments in migrations/model |
|
|
| 3 | Existing mapping table | **MISSING** | No dapodik_rombel_mappings or similar |
|
|
| 4 | Settings page link for Dapodik | **MISSING** | No Dapodik card in Academic Settings hub |
|
|
|
|
**Summary:** Students management exists and is ready. Dapodik integration (client, mapping table, settings link) is missing and will be implemented.
|
|
|
|
---
|
|
|
|
## Implemented (post-implementation)
|
|
|
|
- Migration `dapodik_rombel_mappings`, DapodikClient, DapodikSyncService, DapodikSyncController, dashboard Dapodik page, Students UNMAPPED badge + filter.
|
|
|
|
### Required .env (add to backend/.env)
|
|
|
|
```
|
|
DAPODIK_BASE_URL=http://192.168.7.5:5774/WebService
|
|
DAPODIK_TOKEN=bt5ON1LZPSsaJ6h
|
|
DAPODIK_NPSN=20227474
|
|
```
|
|
|
|
### Brief test steps
|
|
|
|
**1) cURL — Sync (requires valid token + base URL)**
|
|
|
|
```bash
|
|
# Login as ADMIN first; use session cookie or pass auth.
|
|
curl -X POST "http://localhost/sman1/backend/public/api/academic/dapodik/sync/students" \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-Requested-With: XMLHttpRequest" \
|
|
-d "{\"limit\":50,\"max_pages\":2}" \
|
|
--cookie "ci_session=YOUR_SESSION"
|
|
```
|
|
|
|
**2) cURL — List rombel mappings**
|
|
|
|
```bash
|
|
curl "http://localhost/sman1/backend/public/api/academic/dapodik/rombels" \
|
|
-H "X-Requested-With: XMLHttpRequest" \
|
|
--cookie "ci_session=YOUR_SESSION"
|
|
```
|
|
|
|
**3) cURL — Update mapping**
|
|
|
|
```bash
|
|
curl -X PUT "http://localhost/sman1/backend/public/api/academic/dapodik/rombels/1" \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-Requested-With: XMLHttpRequest" \
|
|
-d "{\"class_id\":1}" \
|
|
--cookie "ci_session=YOUR_SESSION"
|
|
```
|
|
|
|
**4) UI**
|
|
|
|
- Login as ADMIN → Academic → Settings → open **Dapodik** card.
|
|
- Click **Jalankan Sinkronisasi**; check summary in pre block and toast.
|
|
- In **Mapping Rombel**, set "Kelas (internal)" and click **Simpan** per row; toggle **Hanya unmapped**.
|
|
- Go to **Siswa** → tick **Hanya unmapped** to see only unmapped students; confirm **UNMAPPED** badge in Kelas column when class_id is null.
|