EXO (EXOSCULAT, Latin for "account") is an automated system for service accounting, rating, and billing. EXO is a universal account manager (customer accounts) that contains a history of rated transactions. Accounts are controlled by BPMN processes whose activities are defined by Erlang functions. EXO, as an example of ERP.UNO, can be used as a prototype for building billing systems, banks, and other accounting systems.
BPE (Business Process Engine) defines the infrastructure for orchestrating business processes according to the BPMN standard and declarative rule-based systems. BPE transactionally stores all steps of business processes in KVS, a modern RocksDB-based database system.
$ sudo apt install erlang elixir build-essential cmake
$ git clone https://github.com/erpuno/exo
$ cd exo
$ mix deps.get
$ iex -S mix
> EXO.boot
In parallel, open:
$ open http://localhost:8004/app/login.htm
This is an educational example of a preparatory course for interns, used to acquire skills in programming systems using the N2O.DEV libraries.
- Login Page
- Admin: BPE, FORM, KVS, N2O, MNESIA
- Back-office: Reports, Tariffs, Roles
- Consumer Panel: Profile, Consumption, Services
- profile.htm Consumer account
- consume.htm Service consumption
- service.htm Service settings and tariffs
- reports.htm Reports
- tariffs.htm Tariff models
- domains.htm Role model
- login.htm Login page
- bpe.htm All processes page
- form.htm All forms page
- process.htm Process history page
- kvs.htm All data chains page
- n2o.htm N2O service utility tables page
- mnesia.htm MNESIA database tables page
- application.ex Main Erlang/OTP application module
- schema.ex Data schema and its configuration
- routes.ex Web server HTML route configuration
- boot.ex Initial seed of test data
- phone_form.ex Authentication form
- process_form.ex Process creation form
- process_row.ex Table row form for process display
- hist_row.ex Table row form for process step display
- adm_act.ex Process history page controller
- adm_bpe.ex BPE processes list page controller
- adm_form.ex FORM system forms page controller
- adm_kvs.ex KVS data page controller
- adm_n2o.ex N2O tables page controller
- adm_mnesia.ex MNESIA data page controller
- exo_login.ex Authentication page controller
- exo_tariffs.ex Tariff models configuration page controller
- exo_domains.ex System users administration page controller
- exo_service.ex Consumer service subscription page controller
The authentication and authorization page, along with system sessions, is an important part of every ERP system. This example provides a PLAIN password HTML form with "1" and "3" working passwords for admin and consumer respectively.
A page listing BPE processes of the ERP system and a form to create them.
A page listing all forms of the ERP system.
A page showing the history of BPE business process steps.
- Maxim Sokhatsky



