Nor Abon is a framework for developing CRM, ERP, and other SaaS systems. It is based on a Schema-Driven approach, where most system behaviour is described through declarative schemas rather than program code.
A typical application consists of two main parts:
The minimum system configuration includes:
Additionally, the following components can be connected to the system:
mobile applications bots client websites POS equipment external services integration modules
All client applications interact with the Backend through a single API.
API requests are performed via HTTP POST and transmitted in JSON format.
Request example:
{
"object": "users",
"action": "get",
"data": {
"role_id": 5
}
}
Each request contains:
All API responses are returned in JSON format.
Response example:
{
"status": 200,
"data": [
{
"id": 3,
"first_name": "Petr",
"last_name": "Andrews",
"email": "andrews@company.com",
"phone": null,
"role_id": {
"title": "SEO",
"value": 2
}
}
],
"detail": {
"rows_count": 1,
"pages_count": 1
}
}
A standard response may contain:
JSON schemas form the foundation of the framework.
Schemas are declarative descriptions of the application structure and allow most system functionality to be generated automatically.
Key benefits:
Nor Abon uses four primary schema types:
Database Schemas Object Schemas Action Schemas Page Schemas
Database schemas describe the structure of tables, indexes, and relationships.
Changes to the database structure are performed exclusively through schemas.
To synchronise schemas with the physical database, the following administrative command is used:
admin → update-db
The command allows you to:
Object schemas describe the system's business entities.
Examples of objects:
users customers products requests orders
Based on object schemas, the framework automatically generates:
An object schema defines:
Action schemas define the available API operations and the rules governing their execution.
For example, the `users` object may support the following commands:
sign-up log-in get add update remove
Every action must have a corresponding schema.
Attempting to call an action that is not registered in the system results in the following error:
Action schema {action} is missing
Page schemas describe the structure of the administrative interface.
The Frontend requests a page definition from the API and builds the user interface based on the returned schema.
In most cases, pages are generated automatically from object and action schemas.
When necessary, the default behaviour can be modified using:
This approach preserves the benefits of automatic interface generation while still allowing deep customisation of individual system components.