T1-A — Canonical Core V1 App Map¶
| Metadata | Nilai |
|---|---|
| Workstream | T1-A Canonical Product Surface & Navigation Contract |
| Mode | Server development · /home/scola/odoo |
| Tanggal | 2026-08-10 |
| Status | Artefak kontrak navigasi (Phase 1) — bukan sertifikasi W01/W02/W05 |
| Sumber primer | docs/release-readiness/01-product-contract.md §2–§3 |
| Evidence IA | docs/release-readiness/02-information-architecture.md (bukan otoritas produk) |
| Source FE (read-only) | src/config/apps/appFragments/*, src/config/apps/roleApps.js |
| Certified app tree | b3785228 (lihat T1-A-preflight.md) |
| Inventory | T1-A-surface-inventory.{json,md} (generated from live APP_REGISTRY) |
1. Mental model pengguna (Core V1)¶
Pengguna sekolah memikirkan Scola sebagai:
- Portal peran — rumah kerja sesuai peran aktif (admin, guru, siswa, orang tua)
- Akademik — struktur sekolah, jadwal, penugasan mengajar
- Kesiswaan — data siswa & orang tua (master)
- Kehadiran / Presensi — hub kehadiran siswa (baca/hub Core; mutasi W05 = pilot terpisah)
- Komunikasi — Berita, Kalender, Notifikasi
- Pengaturan — konfigurasi sekolah & akses pengguna
Package komersial: SC-CORE. Semua app di luar sembilan shell di bawah ini adalah non-Core (optional / pilot / decision / legacy / internal) dan tidak boleh tampak sebagai baseline launcher tanpa entitlement + capability + feature gate.
2. Top-level Core apps (9 shell)¶
Jumlah top-level sengaja dibatasi: 4 portal + 5 domain app. Tidak ada app “Analytics”, “Finance”, “HR”, dsb. di baseline Core.
| # | Application ID | Nama tampilan (ID) | Purpose (1 kalimat) | Domain | Peran utama (intended) | Package | Landing route kanonis | Child sections — Core keep | Child sections — di luar Core (fail-closed) |
|---|---|---|---|---|---|---|---|---|---|
| 1 | admin-dashboard |
Dashboard | Rumah operasi admin sekolah setelah login. | School operations home | school_admin (+ head_admin/admin_staff hanya setelah role closure) |
SC-CORE | /admin/dashboard |
admin_dashboard.overview |
admin_dashboard.hr_personal → SC-PEOPLE / SC-ATTEND+ |
| 2 | teacher-portal |
Kelas Saya | Shell guru / wali kelas untuk hari ini, kalender, dan tugas mengajar inti. | Teaching portal | teacher, homeroom |
SC-CORE | /faculty/dashboard (kanonis; kode masih memakai /faculty/home — IA-008) |
teacher.today, teacher.school_calendar; leaf mengajar/presensi mapel inti setelah split |
teacher.grades → SC-REPORT; teacher.digital_learning → SC-LEARN; teacher.kesiswaan → SC-STUDENT; teacher.hr_personal → SC-PEOPLE; teacher.library → SC-LIB; bagian mixed teacher.teaching / teacher.homeroom perlu split Core vs optional |
| 3 | student-portal |
Belajar Saya | Shell siswa untuk jadwal, kehadiran, kalender, dan self-service inti. | Student portal | student |
SC-CORE | /student/dashboard |
student.school_calendar; jadwal/kehadiran inti setelah rebuild section |
student.grades → SC-REPORT; student.discipline → SC-STUDENT; student.library → SC-LIB; LMS/CBT/billing di section mixed → optional peer |
| 4 | parent-portal |
Anak Saya | Shell orang tua berkonteks anak terpilih: ringkasan, jadwal, kehadiran, berita/kalender. | Parent / child portal | parent |
SC-CORE | /parent/dashboard |
parent.dashboard |
parent.finance → SC-FEES; parent.studentlife → SC-STUDENT; parent.library → SC-LIB; mixed parent.academics / parent.communications (hapus leaf announcement legacy) |
| 5 | academic |
Akademik | Master akademik & jadwal pelajaran (W01 domain). | Academic master / timetable | Operator akademik (school_admin, approved staff) |
SC-CORE | /academic-year |
academic.master; jadwal/rombel/jam/penugasan inti dari academic.schedule setelah split |
academic.assessment → keputusan/optional; academic.report_card → SC-REPORT; academic.lms → SC-LEARN; academic.cbt → SC-ASSESS; legacy exam vs CBT → decision |
| 6 | student-affairs |
Kesiswaan | Master data siswa & orang tua (W02 domain). | Student master / onboarding | school_admin, approved student-admin roles |
SC-CORE | /students |
student-affairs.data (/students, /parents) |
student-affairs.pembinaan → SC-STUDENT |
| 7 | attendance |
Kehadiran | Hub kehadiran siswa manual (baca/navigasi Core). | Manual student attendance | Operator kehadiran, guru (via portal), admin | SC-CORE | /attendance/home |
Hub/read boundary: entry /attendance/home (+ mirror portal) |
attendance.rfid, attendance.face.students → SC-ATTEND+; W05 write/complete/correct = Controlled Pilot (bukan GA Core); pickup bukan W05 |
| 8 | communication |
Komunikasi | Shell publikasi & kalender sekolah. | News / calendar / notification | Semua peran sekolah yang entitled (scope berbeda) | SC-CORE | Canonical content: /news, /calendar; app homeRoute kode = /calendar |
communication.news, communication.calendar, communication.notifications |
communication.messaging, communication.complaints → Requires Product Decision; /announcement → Legacy |
| 9 | settings |
Pengaturan | Konfigurasi perusahaan/sekolah & manajemen akses. | Tenant settings / identity admin | school_admin (+ approved access managers) |
SC-CORE | /settings/company (akses: /admin/users) |
settings.access; company core di dalam settings.school |
Leaf package-specific (staf GPS/face, Dapodik, template LMS, dsb.) mengikuti SKU masing-masing |
Canonical entry routes (SC-CORE contract §2)¶
Selain landing per app: /admin/dashboard, /faculty/dashboard, /student/dashboard, /parent/dashboard, /academic-year, /schedule, /students, /attendance/home, /news, /calendar, /settings/company, /admin/users.
3. Ringkasan hierarki mental model → app ID¶
SC-CORE
├── Portal
│ ├── admin-dashboard (Dashboard admin)
│ ├── teacher-portal (Kelas Saya)
│ ├── student-portal (Belajar Saya)
│ └── parent-portal (Anak Saya)
├── Akademik → academic
├── Kesiswaan → student-affairs
├── Kehadiran / Presensi → attendance
├── Komunikasi → communication
└── Pengaturan → settings
4. Non-Core shells (dicatat terpisah — bukan top-level Core)¶
Status mengikuti 01-product-contract.md §3. Shell ini tidak memperluas baseline Core; muncul hanya jika package/install/entitlement/capability/feature dan keputusan produk mengizinkan.
| Application ID | Status kontrak | Package / catatan |
|---|---|---|
admissions |
Optional Supported | SC-ADM |
finance |
Optional Supported | SC-FEES / SC-FIN (batas leaf) |
hr |
Optional Supported | SC-PEOPLE / SC-ATTEND+ |
inventory |
Optional Supported | SC-OPS (+ BOS pilot di group tertentu) |
library / librarian |
Optional Supported | SC-LIB |
counselor / extracurricular-coach |
Optional Supported | SC-STUDENT |
foundation / foundation-auditor / foundation-hr-ops |
Optional Supported | SC-FOUND / SC-PEOPLE overlay |
bos-admin |
Controlled Pilot | SC-BOS |
dapodik-operator |
Controlled Pilot | SC-DAP |
principal-exec |
Requires Product Decision | Tidak ada leadership SKU yang disetujui |
admin-staff |
Requires Product Decision | Shell sintetik campuran |
vp-* (5) |
Requires Product Decision | Shell wakil kepala sekolah |
security-officer, school-committee, dpo, pickup-officer |
Requires Product Decision | Tidak ada package/owner yang disetujui |
lab-technician |
Incomplete / Remove | Stub — sembunyikan dari launcher |
analytics |
Legacy / Deprecated | Shortcut leadership — jangan di registry peran yang disupport |
platform |
Internal Platform | Control-plane provider saja — bukan navigasi sekolah |
5. Aturan visibilitas (kontrak, bukan daftar ROLE_APPS mentah)¶
- Active role — hanya peran sesi aktif; bukan union semua peran yang di-assign.
- Capability — leaf/route harus lolos capability (DEC-003).
- Entitlement + feature flag — optional/pilot tidak muncul hanya karena ada di
ROLE_APPS.apps[]. - Package membership — leaf mewarisi owner package; mixed shell tidak mengangkat status optional menjadi Core.
- Fail-closed — undecided / legacy / incomplete / internal tidak boleh menjadi entry kanonis di launcher sekolah.
Ini selaras dengan aturan support di product contract:
approved package + installed addon + entitlement + role capability + record scope + tenant/company scope + domain ownership + passing runtime evidence.
6. Catatan sengaja tidak disertifikasi di artefak ini¶
- W01 (academic → timetable), W02 (student onboarding), W05 (daily attendance mutation) tidak dinyatakan lulus / certified di sini.
- Temuan audit T0 tidak ditulis ulang; artefak ini hanya memetakan Core surface untuk kontrak navigasi T1-A.
- Drift home guru (
/faculty/homevs/faculty/dashboard) tercatat sebagai isu IA, bukan approval untuk dual home.
7. Sumber bukti singkat¶
| Klaim | Bukti |
|---|---|
| Sembilan shell Core | 01-product-contract.md §2 SC-CORE + §3 baris Core V1 |
| Landing & section source | appFragments/{adminDashboard,teacherPortal,studentPortal,parentPortal,academic,studentAffairs,attendance,communication,settings}App.js |
| Disposition section keep/entitle | 02-information-architecture.md §2 |
| Baseline counts | T1-A-preflight.md §5 |