Lewati ke isi

Scola Architecture

Dokumentasi arsitektur sistem Scola — frontend, backend, dan integrasi.

Daftar Isi

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

  1. Same-Origin Proxy — Frontend dan backend di-serve dari domain yang sama via Nginx reverse proxy, menghindari CORS
  2. Role-Based Access — 15+ role dengan 4-tier hierarchy (Executive → Management → Operational → Portal)
  3. Capability-based permissions — Frontend menggunakan capability strings sebagai route guards; backend menggunakan Odoo ACL + record rules
  4. OpenEduCat as base — Backend extends OpenEduCat (education ERP) via _inherit, tidak memodifikasi source