Download

How It Works

Overview

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:

  • Frontend — user interfaces.
  • Backend — API and business logic.

The minimum system configuration includes:

  1. Administrative panel (Frontend)
  2. API (Backend)

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 Interaction

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:

  • object — the system object on which the operation is performed
  • action — the API command
  • data — the command input parameters

API Response

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:

  • status — operation status code
  • data — the primary response payload
  • detail — additional service information

Schemas

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:

  • automatic request validation
  • administrative page generation
  • automatic API method generation
  • database schema synchronisation
  • reduced amount of repetitive code

Nor Abon uses four primary schema types:

Database Schemas Object Schemas Action Schemas Page Schemas

Database 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:

adminupdate-db

The command allows you to:

  • create new tables
  • modify the structure of existing tables
  • update development and production environments
  • perform batch updates across multiple projects

Object Schemas

Object schemas describe the system's business entities.

Examples of objects:

users customers products requests orders

Based on object schemas, the framework automatically generates:

  • API commands
  • administrative panel pages
  • validation rules
  • access restrictions
  • relationships between entities

An object schema defines:

  • field definitions
  • data types
  • required fields
  • value uniqueness rules
  • data presentation rules
  • user interface settings

Actions

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

Pages

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:

  • custom actions
  • before/after hooks
  • modules
  • custom handlers

This approach preserves the benefits of automatic interface generation while still allowing deep customisation of individual system components.