Scola Architecture¶
Dokumentasi arsitektur sistem Scola — frontend, backend, dan integrasi.
Daftar Isi¶
- Frontend Stack — Vue 3, Vite, Pinia, TailwindCSS
- Backend Stack — Odoo 17, OpenEduCat, PostgreSQL
- API Proxy — Same-origin proxy, CORS rules
- System Map — Module map & dependency graph
- Platform Tiers — Paket Tier 1/2/3 + rollout roadmap
- Score Pipeline — Alur nilai: Assignment/CBT → Gradebook → eRaport
Overview¶
Scola adalah Sistem Informasi Manajemen Sekolah (SIM) terintegrasi yang terdiri dari:
┌──────────────────────────────────────────────────────────┐
│ dev.gcgscola.id │
├──────────────────────────────────────────────────────────┤
│ Frontend (Vue 3 SPA) │
│ ├── / → serve dist/ (Vite build) │
│ ├── /api/* → proxy to Odoo (localhost:8074) │
│ └── /web/* → proxy to Odoo (localhost:8074) │
├──────────────────────────────────────────────────────────┤
│ Backend (Odoo 17 + OpenEduCat) │
│ ├── scola_core → Auth, roles, base models │
│ ├── scola_cbt → Computer-Based Testing │
│ ├── scola_fees → Fee management │
│ ├── scola_admission → SPMB/admission │
│ ├── scola_attendance → Attendance + RFID │
│ ├── scola_timetable → Schedule management │
│ └── ... (15+ custom modules) │
├──────────────────────────────────────────────────────────┤
│ Database: PostgreSQL │
│ Auth: Firebase + Odoo session │
│ Notifications: Firebase Cloud Messaging (FCM) │
└──────────────────────────────────────────────────────────┘
Key Architectural Decisions¶
- Same-Origin Proxy — Frontend dan backend di-serve dari domain yang sama via Nginx reverse proxy, menghindari CORS
- Role-Based Access — 15+ role dengan 4-tier hierarchy (Executive → Management → Operational → Portal)
- Capability-based permissions — Frontend menggunakan capability strings sebagai route guards; backend menggunakan Odoo ACL + record rules
- OpenEduCat as base — Backend extends OpenEduCat (education ERP) via
_inherit, tidak memodifikasi source