Database
The application uses MySQL 8 with tenant-scoped operational tables.
Baseline Schema
The baseline schema is stored in:
database/schema.sqlIt creates tenants, tenant configuration, users, roles, permissions, RBAC joins, academic structures, student records, HR, finance, parent relations, transport, health, library, facilities, procurement, cafeteria, security, communications, IT, reporting, audit, and schema migration tables.
Migrations
Additional database changes are stored as timestamped SQL files in:
database/migrationsThe installer applies migrations after importing the baseline schema. Local development can apply pending migrations with:
powershell -ExecutionPolicy Bypass -File scripts\database.ps1 -Action migrateTranslation Storage
Many short display fields are JSON objects keyed by locale. This keeps CRUD screens simple while allowing multilingual school names, class names, subject names, labels, and configuration values.
Tenant Scope
Operational records are tenant-scoped so one database can support separate school records. Requests are resolved through tenant middleware and guarded by authenticated user permissions.
Marketplace Database
The XCodeSol sales platform uses its own marketplace tables, including plugins, plugin_versions, plugin_customers, plugin_licenses, plugin_license_domains, plugin_download_events, and related checkout/license event tables. The seed SQL for this product inserts the sales/catalog record and a package version placeholder.