# Product Requirements Document

## Real-Time Monitoring Dashboard: 110 Siswa, Satu Dashboard

**Program:** Super Camp "Banten Merebut Garuda"  
**Versi:** 1.1  
**Status:** Siap untuk desain UI/UX, ERD, backlog, dan estimasi engineering  
**Tanggal:** 24 Agustus 2026  
**Sumber utama:** `Super-Camp-Banten-Merebut-Garuda.pdf` (20 halaman)  
**Dokumen terkait:** [`srs.md`](./srs.md) dan [`AGENTS.md`](./AGENTS.md)

---

## 1. Ringkasan produk

Dashboard ini adalah sistem operasi mentorship untuk baseline resmi 110 siswa Banten. Produk tidak berhenti pada penyajian grafik, tetapi membentuk siklus tindakan yang lengkap:

1. Siswa dan mentor memperbarui aktivitas serta bukti progres.
2. Sistem menghitung kesiapan, status operasional, dan tahapan aplikasi.
3. Sistem mendeteksi risiko dan membuat alert.
4. Alert mempunyai pemilik, SLA, tindakan, eskalasi, dan bukti penyelesaian.
5. Pengelola memantau perjalanan peserta sampai LoA, beasiswa, keberangkatan, pre-departure, dan alumni.

### 1.1 Sasaran program

| Indikator | Target |
|---|---:|
| Siswa terpilih | 110 |
| ISR tervalidasi | 110 |
| Application Ready | Minimal 99 siswa |
| Mengirim aplikasi | Minimal 88 siswa |
| Beasiswa dan mulai studi luar negeri pada 2027 | 55 siswa |

### 1.2 Periode program

- Kick-off Super Camp: 29-30 Agustus 2026.
- Mentorship daring: September 2026-Februari 2027.
- Summit dan Awarding Day: Februari/Maret 2027.
- Monitoring outcome dilanjutkan sampai status keberangkatan/studi luar negeri terverifikasi.

---

## 2. Status cakupan sumber

Seluruh kebutuhan substantif pada halaman 1-20 PDF sudah memiliki representasi berupa:

- fitur;
- data yang harus disimpan;
- aturan bisnis;
- pemilik pembaruan/validasi;
- acceptance criteria; atau
- keputusan terbuka yang sengaja tidak di-hardcode.

Keputusan yang telah disetujui dan diselaraskan dengan implementasi:

1. Steering Committee dimodelkan sebagai permission set di bawah role Admin.
2. Klasifikasi Final Sprint Bulan 6 dipisahkan dari SRS, health status, dan application stage.
3. `spectator` menjadi role login keempat untuk Dinas, Sekolah, dan Orang Tua dengan akses read-only yang dibatasi server.
4. Baseline resmi cohort adalah 110 siswa, sedangkan topologi group, pod, siswa, dan mentor tetap configuration-driven.
5. Pemeriksaan file yang tersedia hanya verifikasi integritas deterministik, bukan malware atau antivirus scanning.
6. Benchmark p95 produksi dan drill backup/restore tetap menjadi target, tetapi belum dijalankan atau dibuktikan.

---

## 3. Prinsip domain yang tidak boleh dilanggar

### 3.1 Empat indikator yang berbeda

| Indikator | Pertanyaan yang dijawab | Contoh nilai |
|---|---|---|
| Scholarship Readiness Score | Seberapa siap kompetensi dan bukti siswa? | 78.5 - Application Ready |
| Health Status | Apakah progres siswa sedang sehat atau berisiko? | On Track, Need Attention, At Risk |
| Application Stage | Sudah sampai mana satu aplikasi tertentu? | Not Ready, Ready, Submitted, LoA |
| Final Sprint Support Band | Dukungan apa yang dibutuhkan pada sprint Bulan 6? | Green, Yellow, Red |

Keempat indikator tidak boleh disimpan dalam satu kolom atau saling menggantikan. Contoh: siswa dapat memiliki SRS 82 dan aplikasi berstatus Ready, tetapi tetap At Risk karena deadline tinggal tiga hari.

### 3.2 Satu siswa dapat memiliki banyak aplikasi

- Status aplikasi disimpan per aplikasi, bukan pada tabel siswa.
- Satu aplikasi memiliki target universitas/program, target beasiswa, requirement, deadline, dokumen, submission, interview, dan outcome sendiri.
- Funnel program menghitung siswa unik, sedangkan laporan aplikasi juga menampilkan total aplikasi.

### 3.3 Angka organisasi harus configurable

PDF memuat angka yang tidak konsisten:

- baseline resmi 110 siswa, sedangkan sumber awal memuat angka cohort dan kelompok yang berbeda;
- 5 atau 5-6 siswa per kelompok;
- 20 dan 22 mentor;
- dua co-mentor dan satu fasilitator per kelompok.

Baseline resmi cohort adalah 110 siswa. Jumlah group, pod, siswa per group/pod, mentor, fasilitator, dan assignment overlap ditentukan melalui konfigurasi cohort, bukan working assumption tetap.

Tidak satu pun angka topologi tersebut boleh di-hardcode di source code atau schema.

---

## 4. Tujuan dan non-goals

### 4.1 Tujuan

- Memberi setiap siswa roadmap personal dan next action yang jelas.
- Memberi mentor workbench untuk review, feedback, attendance, dan intervensi.
- Memberi admin satu tampilan untuk seluruh 110 siswa pada baseline resmi cohort.
- Mengukur readiness secara terstruktur pada empat checkpoint.
- Mencegah silent dropout melalui deteksi dini dan eskalasi berjenjang.
- Menghasilkan funnel outcome yang dapat diaudit sampai keberangkatan.
- Menjaga privasi data dan dokumen peserta.

### 4.2 Non-goals

- Mengirim aplikasi langsung ke portal universitas atau penyedia beasiswa.
- Menggantikan sistem resmi TOEFL, IELTS, SAT, admission, visa, atau scholarship provider.
- Menjadi LMS atau platform video conference lengkap.
- Menggunakan AI untuk memutuskan kelayakan beasiswa atau memberi skor esai pada Release 1.
- Memberi spectator kemampuan mutasi. Dinas, Sekolah, dan Orang Tua hanya mempunyai akses read-only dalam scope server masing-masing.
- Mengklaim SRS telah tervalidasi secara ilmiah sebelum rubrik dan konsistensi assessor diuji.

---

## 5. Role dan permission

Produk mempunyai tepat empat login-level role: `student`, `mentor`, `admin`, dan `spectator`.

### 5.1 Siswa

- Melihat dan memperbarui profil miliknya.
- Menyusun ISR dan target.
- Mengisi weekly check-in.
- Mengikuti session dan melihat attendance.
- Mengirim milestone, dokumen, dan revisi.
- Memperbarui aplikasi dan mengunggah bukti.
- Melihat SRS yang telah dipublikasikan dan feedback.
- Melihat deadline, alert relevan, intervention action, dan notifikasi pribadi.

### 5.2 Mentor

Mentor hanya dapat mengakses siswa berdasarkan penugasan aktif.

Tipe penugasan:

- `co_mentor`;
- `facilitator`.

Kemampuan Mentor:

- melihat siswa/kelompok yang ditugaskan;
- mencatat session dan attendance;
- melakukan review dan validasi milestone;
- menilai SRS;
- mengelola alert serta intervention case;
- memberi feedback dan action item;
- memverifikasi target, deadline, dokumen, submission, dan readiness evidence sesuai permission.

### 5.3 Admin

Permission set Admin:

| Permission set | Kemampuan utama |
|---|---|
| `super_admin` | Pengguna, permission, konfigurasi sistem, seluruh data, dan audit |
| `coordinator` | Operasional program, semua siswa, assignment, alert, intervensi, outcome, dan laporan |
| `program_director` | Dashboard keseluruhan, approval tertentu, outcome, laporan, dan keputusan program |
| `steering_viewer` | Read-only dashboard, funnel, outcome, dan laporan eksekutif |

Authorization harus diterapkan dengan Laravel Policies/Gates di server. Menyembunyikan menu tidak dianggap sebagai kontrol akses.

### 5.4 Spectator

Role `spectator` formal bersifat read-only. Jenis dan scope yang ditegakkan di server:

| Jenis spectator | Scope baca |
|---|---|
| `dinas` | Seluruh siswa aktif dalam program |
| `sekolah` | Siswa aktif yang terhubung ke sekolah spectator |
| `orang_tua` | Satu siswa yang terhubung ke profil spectator |

- Spectator tidak dapat melakukan mutasi apa pun.
- Scope wajib diterapkan melalui query/policy server, bukan hanya filter atau menu UI.
- Dokumen privat hanya dapat dilihat untuk siswa dalam scope spectator, tetap melalui policy, authorized expiring access, dan access log.
- Sekolah dan orang tua tetap dapat menjadi escalation contact dengan consent yang sesuai; setiap kontak intervensi dicatat pada intervention log.

---

## 6. Scope dan prioritas rilis

### 6.1 P0 - Operational Core

- Authentication, role, permission, dan policy.
- Cohort, program phase, group, pod, dan mentor assignment.
- Student profile, consent, school, dan escalation contact.
- Individual Scholarship Roadmap.
- Country, university, program, dan scholarship target.
- Requirement serta deadline calendar.
- Session, masterclass, group mentoring, clinic, dan attendance.
- Weekly check-in dan engagement.
- Milestone, submission, version, review, revision, dan validation.
- Test result, CV, academic profile, achievement, leadership, certification, dan portfolio.
- Private document management.
- Application tracker per aplikasi.
- Baseline SRS dan checkpoint yang telah berjalan.
- Health status, early warning, intervention, dan escalation.
- Admin dashboard, student matrix, mentor workbench, dan student dashboard.
- Notification center, export, audit log, queue, dan scheduler.

### 6.2 P1 - Selection Execution

- SRS Bulan 2, Bulan 4, dan Bulan 6.
- Advanced application readiness.
- Interview invitation dan schedule.
- Dua mock interview untuk peserta yang memasuki tahap seleksi.
- Interview rubric, feedback, coaching, dan Interview Ready validation.
- Verified submission, shortlist, interview, LoA, scholarship award, dan study-abroad outcome.
- Final Sprint Support Band.
- Funnel dan comparative analytics.

### 6.3 P2 - Beyond Scholarship

- Summit dan progress showcase.
- Student stories dan scholarship achievement announcement.
- Award management.
- Pre-departure checklist.
- Alumni profile dan Banten Global Scholars Network.
- Alumni-to-mentor lifecycle.
- Perluasan pengalaman spectator untuk sekolah/orang tua jika disetujui, tanpa mengubah sifat read-only dan server-scoped.
- Integrasi WhatsApp dan push real-time apabila dibutuhkan.

---

## 7. Program model dan monthly milestones

### 7.1 Siklus rutin

Setiap bulan memiliki siklus rutin yang berulang secara terstruktur (Masterclass & Group Mentoring digabungkan sebagai tahap pembekalan dan bimbingan terarah):

| Siklus | Tahapan | Subtitle / Penjelasan | Durasi (hari) |
|:---:|---|---|:---:|
| 1 | **Masterclass & Group Mentoring** | Pembekalan materi pakar dilanjutkan diskusi bimbingan kelompok terarah bersama co-mentor | 1–2 |
| 2 | **Assignment** | Pengerjaan & pengunggahan tugas mandiri siswa berdasarkan materi | 3–4 |
| 3 | **Mentor Review** | Umpan balik, evaluasi, dan review berkas tugas oleh mentor | 1 |
| 4 | **Revision** | Perbaikan berkas dan penyempurnaan tugas sesuai catatan mentor | 1–2 |
| 5 | **Milestone Check** | Evaluasi capaian bulanan dan verifikasi kelulusan milestone resmi | 1 |

Setiap siklus menyimpan:

- jenis session;
- cohort/group/peserta;
- host dan fasilitator;
- jadwal dan timezone;
- meeting link/lokasi;
- materi;
- attendance;
- catatan internal atau shared;
- action item;
- tindak lanjut.

### 7.2 Roadmap enam bulan

Setiap bulan terdiri dari siklus terstruktur (Masterclass & Group Mentoring → Assignment → Mentor Review → Revision → Milestone Check). Milestone minimum per bulan:

| Bulan | Fokus | Milestone minimum |
|---|---|---|
| September 2026 | Scholarship Mapping & Personal Roadmap | ISR lengkap dan tervalidasi mentor |
| Oktober 2026 | English, SAT, dan Academic Profile | CV internasional final dan improvement plan |
| November 2026 | Essay & Personal Branding | Application Package Draft telah melalui satu review cycle |
| Desember 2026 | Application Readiness & Submission | Mulai mengirim aplikasi nyata |
| Januari 2027 | Interview & Selection Bootcamp | Peserta tahap seleksi menyelesaikan minimal dua mock interview dan dinyatakan Interview Ready |
| Februari 2027 | Application Sprint & Final Evaluation | Aplikasi dituntaskan dan setiap siswa mendapat support band/intervention plan |

---

## 8. Individual Scholarship Roadmap

Setiap siswa mempunyai tepat satu ISR aktif per cohort dengan version history.

Isi ISR:

1. `Who am I?` - profil akademik, prestasi, leadership, extracurricular, certification, dan portfolio.
2. `Where do I want to go?` - negara, universitas, dan program studi.
3. `What scholarship?` - tiga sampai lima target beasiswa yang relevan.
4. `What is my gap?` - English, CV, essay, document, interview, dan gap lain.
5. `What should I do next?` - action plan enam bulan yang spesifik, terukur, memiliki owner dan due date.

Validation rule awal:

- minimal tiga negara;
- minimal lima university/program target;
- tiga sampai lima scholarship target;
- requirement admission dan scholarship;
- deadline calendar;
- personal gap analysis;
- mentor validation.

Admin dapat memberi exception, tetapi wajib menyimpan reason, actor, dan timestamp.

---

## 9. Functional requirements

### 9.1 Identity dan program structure

- **AUTH-01 (P0):** pengguna dapat login, logout, reset password, dan mengelola account dasar.
- **AUTH-02 (P0):** akses mengikuti role, permission set, dan active assignment.
- **AUTH-03 (P0):** admin dapat invite, activate, deactivate, dan bulk-import user dengan row-level error report.
- **PROG-01 (P0):** admin dapat membuat cohort, month/phase, milestone template, dan official date.
- **PROG-02 (P0):** group, pod, jumlah siswa, mentor, dan fasilitator configurable.
- **PROG-03 (P0):** assignment mempunyai start/end date dan tidak menghapus attribution historis.

### 9.2 Student profile dan evidence

- **STU-01 (P0):** profile menyimpan sekolah, academic record, prestasi, leadership, extracurricular, award, certification, portfolio, contact, guardian, dan consent metadata.
- **STU-02 (P0):** evidence mempunyai status `unverified`, `verified`, atau `rejected`.
- **STU-03 (P0):** siswa dapat mencatat banyak TOEFL/IELTS/SAT/tes lain dengan test type, score, date, target, dan evidence.
- **STU-04 (P0):** perubahan data sensitif dan verification tercatat pada audit log.

### 9.3 Session dan attendance

- **SESS-01 (P0):** session mendukung masterclass, group mentoring, individual clinic, mock interview, dan custom type.
- **SESS-02 (P0):** attendance mendukung `present`, `late`, `absent`, dan `excused`.
- **SESS-03 (P0):** dua ketidakhadiran tidak beralasan berturut-turut memicu At Risk rule.
- **SESS-04 (P0):** notes dapat berupa internal-only atau shared-with-student.
- **SESS-05 (P1):** dashboard mengukur pemenuhan satu masterclass dan satu group mentoring per bulan.

### 9.4 Weekly check-in

- **CHK-01 (P0):** check-in menyimpan progress, blocker, support needed, next action, evidence, dan timestamp.
- **CHK-02 (P0):** status check-in: `due`, `submitted`, `late`, `missed`, atau `excused`.
- **CHK-03 (P0):** blocker dapat dikonversi menjadi alert/action/intervention.
- **CHK-04 (P0):** check-in yang masih berada dalam grace period berstatus late; setelah resmi missed, default PDF memicu At Risk. Perubahan threshold memerlukan approval program owner.

### 9.5 Milestone, submission, dan review

- **MILE-01 (P0):** admin membuat milestone template, criteria, due date, dan audience.
- **MILE-02 (P0):** submission mendukung structured response, link, dan private file.
- **MILE-03 (P0):** revision menambah version baru dan tidak menimpa version lama.
- **MILE-04 (P0):** review state: `pending_review`, `needs_revision`, `approved`, atau `validated`.
- **MILE-05 (P0):** validation menyimpan reviewer, rubric/criteria, feedback, timestamp, dan evidence.
- **MILE-06 (P0):** overdue milestone memengaruhi health status dan alert.

### 9.6 Essay dan personal branding

Sistem melacak:

- CV final;
- personal statement;
- motivation letter;
- scholarship essay;
- leadership story;
- recommendation request;
- cold email.

Setiap deliverable dapat bersifat generic atau terhubung ke aplikasi tertentu dan wajib mendukung draft-review-revision-final.

### 9.7 Target, requirement, dan deadline

- **TGT-01 (P0):** target menyimpan country, institution, program, scholarship, priority, fit notes, source URL, owner, dan last verified date.
- **TGT-02 (P0):** requirement dapat mandatory/optional dan mempunyai status serta evidence.
- **TGT-03 (P0):** deadline menyimpan timezone sumber dan ditampilkan dalam Asia/Jakarta.
- **TGT-04 (P0):** calendar menggabungkan personal, application, group, dan program deadline.
- **TGT-05 (P1):** deadline yang lama tidak diverifikasi diberi stale warning.

### 9.8 Private documents

Document type minimum:

- passport;
- transcript;
- CV;
- essay;
- personal statement;
- recommendation letter;
- English certificate;
- portfolio;
- admission/LoA evidence;
- scholarship award evidence;
- visa/pre-departure evidence.

Document state:

- `missing`;
- `uploaded`;
- `under_review`;
- `needs_revision`;
- `verified`;
- `expired`.

File wajib private, memakai authorized expiring access, dan seluruh akses sensitif dicatat.

### 9.9 Application tracker

- **APP-01 (P0):** satu siswa dapat mempunyai banyak application record.
- **APP-02 (P0):** satu application mempunyai requirement checklist dan readiness percentage.
- **APP-03 (P0):** status awal mengikuti PDF: `not_ready`, `in_progress`, `ready`, `submitted`.
- **APP-04 (P0):** submitted memerlukan submission date dan proof atau admin verification.
- **APP-05 (P1):** downstream stage: `shortlisted`, `interview`, `loa_admitted`, `scholarship_awarded`, `rejected`, `withdrawn`, dan `study_abroad`.
- **APP-06 (P1):** perubahan official outcome memerlukan actor berwenang, date, evidence, source, dan audit trail.

### 9.10 Interview bootcamp

- **INT-01 (P1):** real interview invitation terhubung ke aplikasi.
- **INT-02 (P1):** peserta yang memasuki tahap seleksi menyelesaikan minimal dua mock interview.
- **INT-03 (P1):** rubric minimum mencakup English communication/confidence, goal clarity/academic motivation, leadership/problem solving, dan impact orientation/scholarship fit.
- **INT-04 (P1):** feedback menghasilkan coaching action dan due date.
- **INT-05 (P1):** Interview Ready hanya dapat divalidasi setelah minimum mock dan assessment lengkap.

### 9.11 SRS

Seluruh aturan scoring, evidence, checkpoint, formula, governance, dan testing berada di [`srs.md`](./srs.md).

Requirement ringkas:

- delapan komponen dengan total bobot 100%;
- checkpoint Baseline, Bulan 2, Bulan 4, dan Bulan 6;
- draft tidak dapat dipublikasikan apabila komponen/evidence wajib belum lengkap;
- published assessment immutable;
- koreksi membuat revision baru;
- rubric dan weight versioned per cohort.

### 9.12 Health status dan Early Warning System

#### Health status

| Status | Initial configurable rule |
|---|---|
| On Track | Tidak ada rule Need Attention/At Risk aktif; check-in current; tidak ada milestone overdue; tidak ada threatened deadline |
| Need Attention | Satu unexcused absence; check-in terlambat tetapi masih dalam grace period; milestone segera jatuh tempo tetapi belum lengkap; aktivitas stagnan; SRS menurun |
| At Risk | Dua consecutive absence; satu check-in resmi missed; milestone overdue; critical application deadline terancam; tidak merespons mentor; manual priority override |

Precedence: `At Risk > Need Attention > On Track`.

#### Alert lifecycle

`open -> acknowledged -> in_progress -> waiting -> resolved -> reopened`

Setiap alert wajib mempunyai:

- student;
- source rule dan source record;
- reason;
- severity;
- owner;
- created/due/acknowledged/resolved timestamp;
- intervention history;
- resolution evidence.

Sistem harus mencegah duplicate open alert untuk kombinasi student-rule-source yang sama.

#### Escalation flow

1. Dashboard alert.
2. Facilitator contact.
3. Mentor intervention.
4. Mentorship Coordinator.
5. Sekolah/orang tua jika diperlukan dan consent memungkinkan.

Initial SLA harus configurable dan disetujui program owner sebelum production.

### 9.13 Final Sprint Support Band

Support band digunakan khusus untuk Application Sprint Bulan 6 dan bukan pengganti health status.

| Band | Definisi | Tindakan utama |
|---|---|---|
| Green | Minimal satu aplikasi Ready/Submitted dan tidak ada gap kritis | Follow-up submission dan interview preparation |
| Yellow | Hampir Ready; gap masih dapat ditutup sebelum deadline | Intervention plan untuk menyelesaikan requirement tertunda |
| Red | Significant gap atau tidak ada jalur aplikasi yang realistis tanpa dukungan intensif | Personal intervention plan dari mentor dan coordinator |

Support band dihitung dari readiness aplikasi, deadline, dokumen, milestone, dan review mentor. Mentor/coordinator dapat override dengan reason serta expiry.

### 9.14 Dashboard

#### Admin Command Center

- active student count;
- On Track, Need Attention, dan At Risk;
- average SRS dan delta;
- milestone completion;
- check-in/attendance completion;
- application ready dan submitted;
- interview, LoA, award, dan study abroad;
- deadline kritis;
- open/overdue alert;
- funnel;
- data freshness timestamp.

#### 110-student matrix

Sepuluh area monitoring:

1. English;
2. CV;
3. Essay;
4. University;
5. Scholarship;
6. Documents;
7. Application;
8. Interview;
9. LoA;
10. Scholarship Award.

Setiap cell mempunyai status text/icon selain warna, progress/evidence summary, dan drill-down.

#### Operational table

Kolom minimum:

- student;
- school;
- group/pod;
- mentor/facilitator;
- SRS dan delta;
- health status;
- support band bila berlaku;
- current milestone;
- nearest deadline;
- application stage;
- last activity;
- alert/intervention owner;
- next action.

Filter minimum: cohort, month, group, pod, mentor, school, wilayah, SRS category, health status, support band, milestone, application stage, deadline range, dan last activity.

### 9.15 Funnel dan outcome

Funnel menghitung siswa unik berdasarkan highest verified stage:

1. Selected Student.
2. ISR Validated.
3. Application Ready.
4. Submitted.
5. Admission/Shortlist/Interview.
6. LoA.
7. Scholarship Award.
8. Study Abroad.

Satu siswa dengan tiga aplikasi tetap dihitung satu pada student funnel, tetapi tiga pada total application metric.

Official outcome harus mempunyai evidence dan admin verification. Student claim yang belum diverifikasi ditampilkan sebagai pending dan tidak masuk official count.

### 9.16 Summit dan awards

Agenda minimum:

- Progress Showcase & Student Stories.
- Scholarship Achievement Announcement.
- Mentor Recognition & Awarding.
- Peluncuran Alumni Network.

Award category dari PDF:

- Banten Global Scholar Award.
- Best Scholarship Portfolio.
- Best Essay.
- Best Interview.
- Most Improved.
- Most Consistent.
- Outstanding Mentor.

Setiap award menyimpan criteria, nominee, nominator, reviewer/approver, evidence, dan announcement state.

### 9.17 Pre-departure dan alumni

Pre-departure checklist mempunyai empat domain:

1. LoA & Scholarship Confirmation.
2. Visa & Academic Preparation.
3. Financial & Living Abroad.
4. Global Networking, culture shock, dan community building.

Alumni lifecycle:

`Siswa Banten -> Scholarship Awardee -> Mahasiswa Luar Negeri -> Alumni Global/Future Mentor`

Alumni profile menyimpan destination, institution, program, start/graduation estimate, contribution history, mentor opt-in, dan consent.

### 9.18 Notification, report, dan audit

Notification event minimum:

- due/overdue check-in;
- milestone due/overdue;
- review feedback/revision;
- deadline reminder/change;
- SRS published;
- alert assignment/escalation;
- intervention follow-up;
- application/outcome change.

Report minimum:

- executive program report;
- mentor operational report;
- student progress report;
- application report;
- SRS report;
- early-warning/intervention report;
- funnel/outcome report;
- data-quality report.

Export harus mengikuti permission, active filter, cohort, timestamp, dan metric definition. Link dokumen sensitif tidak boleh muncul pada broad export.

---

## 10. Data model minimum

### 10.1 Identity dan organisasi

- `users`
- `roles`
- `permissions`
- `cohorts`
- `program_phases`
- `mentorship_groups`
- `pods`
- `mentor_assignments`

### 10.2 Student dan roadmap

- `student_profiles`
- `schools`
- `guardian_contacts`
- `consent_records`
- `scholarship_roadmaps`
- `roadmap_versions`
- `gap_items`
- `action_plans`
- `test_results`
- `profile_items`
- `portfolio_items`

### 10.3 Program delivery

- `sessions`
- `session_participants`
- `attendances`
- `weekly_checkins`
- `milestone_templates`
- `milestone_assignments`
- `submissions`
- `submission_versions`
- `reviews`

### 10.4 Target, document, dan application

- `countries`
- `institutions`
- `study_programs`
- `scholarship_targets`
- `target_requirements`
- `deadlines`
- `documents`
- `document_versions`
- `applications`
- `application_requirements`
- `application_events`
- `interviews`
- `interview_assessments`
- `outcomes`

### 10.5 SRS, health, dan intervention

- `srs_rubric_versions`
- `srs_assessments`
- `srs_assessment_items`
- `health_snapshots`
- `support_band_snapshots`
- `alerts`
- `interventions`
- `intervention_events`

### 10.6 Post-program dan operasi

- `awards`
- `award_nominations`
- `predeparture_items`
- `alumni_profiles`
- `alumni_contributions`
- `notifications`
- `export_jobs`
- `activity_logs`
- `configuration_versions`

---

## 11. Data ownership

| Data | Input utama | Validator/otoritas |
|---|---|---|
| Profile dan ISR draft | Siswa | Mentor; admin correction dengan reason |
| Session dan attendance | Mentor/facilitator | Admin correction dengan audit |
| Weekly check-in | Siswa | Mentor acknowledge; admin excuse |
| Milestone submission | Siswa | Mentor review dan validation |
| Test/profile evidence | Siswa | Mentor verification |
| Target/deadline | Siswa atau Mentor | Mentor/Admin last verification |
| Application submission | Siswa | Mentor/Admin verification |
| SRS | Mentor | Authorized publisher; admin revision dengan reason |
| Alert | Sistem atau staff berwenang | Assigned owner menyelesaikan/escalate |
| LoA, award, study abroad | Siswa claim | Admin official verification |

---

## 12. Real-time behavior

- Setelah save berhasil, actor langsung melihat state terbaru.
- Shared dashboard menggunakan Livewire polling 30-60 detik pada Release 1.
- Rule deadline, attendance, check-in, dan SLA dijalankan scheduler setiap 5-15 menit dan setelah relevant write.
- Notification/export/file processing dijalankan melalui queue.
- Job dan scheduled rule harus idempotent.
- Laravel Reverb/WebSocket hanya ditambahkan apabila push sub-menit benar-benar dibutuhkan.

---

## 13. Non-functional requirements

| Area | Requirement |
|---|---|
| Performance | Target ordinary action p95 <=2.5 detik dan dashboard p95 <=4 detik untuk baseline cohort 110 siswa, tidak termasuk upload; benchmark produksi belum dijalankan atau dibuktikan |
| Freshness | Shared dashboard menampilkan perubahan <=60 detik |
| Scale | Minimal 250 named users dan 100 concurrent active sessions tanpa redesign |
| Responsive | Core siswa/mentor usable pada viewport 360 px; admin desktop-first dan tablet-functional |
| Accessibility | Target WCAG 2.2 AA; keyboard, focus, label, contrast, dan non-color-only status |
| Authorization | Server-side policy, least privilege, assignment scope, dan admin permission set |
| Privacy | Consent, private storage, expiring access, need-to-know visibility, dan access log |
| File security | Type/size validation, MIME verification, deterministic integrity verification atas keberadaan dan ukuran file, serta no public URL; tidak ada klaim malware/antivirus scanning |
| Reliability | Retry-safe queue, idempotent job, scheduler monitoring, dan reconciliation |
| Backup | Target encrypted daily backup, RPO 24 jam, dan RTO 8 jam dipertahankan; implementasi dan drill restore produksi ditunda serta belum dibuktikan |
| Audit | Material mutation dan official verification mempunyai immutable activity record |
| Localization | Bahasa Indonesia; Asia/Jakarta display timezone dengan source timezone tersimpan |

---

## 14. Technology baseline

- Laravel untuk backend, domain logic, policies, validation, database, scheduler, queue, notification, export, dan audit.
- Livewire untuk reactive form, tracker, dashboard, matrix, filter, upload, dan polling.
- Alpine.js untuk interaksi UI lokal.
- Tailwind CSS untuk responsive design system.
- Relational database untuk normalized program/application/assessment data.
- Private object/file storage untuk evidence.
- Redis/cache opsional sesuai hosting untuk queue, cache, rate limit, dan lock.

React tidak dibutuhkan untuk scope dan skala saat ini.

---

## 15. UAT minimum

Release 1 belum dapat diterima sebelum skenario berikut lulus dengan seed baseline 110 siswa:

1. Siswa hanya dapat melihat data sendiri.
2. Mentor hanya dapat melihat active assignment.
3. Setiap Admin permission set mempunyai allow/deny behavior yang benar.
4. Spectator Dinas, Sekolah, dan Orang Tua hanya dapat membaca siswa serta dokumen privat dalam scope server masing-masing dan tidak dapat melakukan mutasi.
5. ISR draft-revision-validation memperbarui metric 110 roadmap.
6. Weekly check-in-submission-review-feedback-validation memperbarui dashboard.
7. SRS menghitung delapan komponen dan boundary category dengan benar.
8. Dua consecutive absence membuat alert/status yang benar tanpa duplicate.
9. Satu check-in yang telah resmi missed, overdue milestone, threatened deadline, dan no-response rule berfungsi.
10. Intervention acknowledge-action-escalation-resolution-reopen dapat diaudit.
11. Beberapa aplikasi milik satu siswa tetap independen.
12. Student funnel tidak double count.
13. Unauthorized private-file access ditolak dan authorized access dicatat.
14. Core mobile flow usable pada 360 px dan tidak bergantung pada warna.
15. Export mengikuti filter/permission dan tidak membocorkan link sensitif.
16. Queue retry dan scheduler idempotency teruji.

Benchmark p95 produksi dan drill backup/restore tidak menjadi acceptance evidence Release 1 saat ini. Keduanya ditunda dan belum dibuktikan, tetapi target pada NFR tetap berlaku sampai diverifikasi di lingkungan produksi.

---

## 16. Open decisions

Hal berikut harus disetujui program owner sebelum engineering lock:

1. Struktur group/pod final.
2. Jumlah mentor/fasilitator dan overlap policy.
3. Permission detail `co_mentor` dan `facilitator`.
4. SRS rubric serta assessor calibration.
5. No-response duration, alert severity, SLA, dan business hours.
6. Exact Application Ready gate.
7. Official evidence untuk Submitted, LoA, Award, dan Study Abroad.
8. Consent, escalation, retention, dan deletion policy.
9. Notification channel Release 1.
10. Monitoring end date dan alumni handoff.
11. Summit/award workflow ownership.
12. Hosting, database, private storage, backup, dan production support owner.

Selama keputusan belum final, implementasi harus memakai configuration/versioning dan tidak membuat asumsi irreversible.

---

## 17. Traceability PDF ke produk

| Halaman PDF | Kebutuhan | Representasi produk |
|---:|---|---|
| 1-2 | Program, periode, baseline resmi 110 siswa, target 50% | Cohort, timeline, success metric, outcome |
| 3 | Director, Steering Committee, Coordinator, groups, mentors, facilitator | Role/permission, assignment, configurable structure |
| 4 | Masterclass, group mentoring, clinic, weekly check-in | Session, attendance, check-in, calendar |
| 5 | ISR | Profile, target, gap, action plan, validation |
| 6-7 | Roadmap dan scholarship mapping | Program phase, target minimum, requirements, deadline |
| 8 | English/SAT dan academic profile | Test result, improvement plan, CV, profile, portfolio |
| 9 | Essay/personal branding | Versioned deliverable dan mentor review cycle |
| 10 | Documents dan application tracker | Private document, checklist, per-application status |
| 11 | Dua mock interview dan assessment | Interview module, rubric, coaching, readiness |
| 12 | Green/Yellow/Red sprint | Final Sprint Support Band dan intervention plan |
| 13 | Dashboard dan 10 area | Command Center, matrix, operational table |
| 14 | SRS | `srs.md`, assessment, history, formula |
| 15 | Early warning dan escalation | Rule engine, alert, intervention, school/parent contact |
| 16 | Funnel | Unique-student verified funnel |
| 17 | Summit dan awards | Showcase, categories, nomination/approval |
| 18 | Pre-departure | Four-domain checklist |
| 19 | Alumni cycle | Alumni profile, contribution, mentor opt-in |
| 20 | Final program target | Executive reporting dan verified KPI |

---

## 18. Definition of Done

Satu requirement dianggap selesai apabila:

- acceptance criteria lulus;
- authorization allow/deny test tersedia;
- business rule test tersedia;
- responsive, loading, empty, error, dan accessibility state selesai;
- audit event dan data migration tersedia bila relevan;
- queue/scheduler path idempotent bila relevan;
- documentation dan operational note diperbarui;
- tidak melanggar invariant pada `AGENTS.md`;
- perubahan SRS konsisten dengan `srs.md`;
- program owner menyetujui keputusan bisnis yang terkait.
