Lewati ke isi

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:

  1. Portal peran — rumah kerja sesuai peran aktif (admin, guru, siswa, orang tua)
  2. Akademik — struktur sekolah, jadwal, penugasan mengajar
  3. Kesiswaan — data siswa & orang tua (master)
  4. Kehadiran / Presensi — hub kehadiran siswa (baca/hub Core; mutasi W05 = pilot terpisah)
  5. Komunikasi — Berita, Kalender, Notifikasi
  6. 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)

  1. Active role — hanya peran sesi aktif; bukan union semua peran yang di-assign.
  2. Capability — leaf/route harus lolos capability (DEC-003).
  3. Entitlement + feature flag — optional/pilot tidak muncul hanya karena ada di ROLE_APPS.apps[].
  4. Package membership — leaf mewarisi owner package; mixed shell tidak mengangkat status optional menjadi Core.
  5. 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/home vs /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