EXO: Тарифікація та розрахунки
EXO (EXOSCULAT, рахунок латиною) — автоматизована система обліку наданих послуг, їх тарифікації і виставляння рахунків для оплати. EXO — це універсальний менеджер облікових записів (клієнтських рахунків), які містять історію тарифікованих транзакцій. Облікові записи контролюються BPMN процесами, активності яких визначені Erlang функціями. EXO, як приклад <a href="https://erp.uno">ERP.UNO</a> може бути використаний як прототип для побудови білінгових систем, банків та інших облікових систем.
Запуск
Бізнес-процеси підприємства BPE визначають інфраструктуру для оркестрування виробничих процесів згідно стандарту BPMN, та систем на основі декларативних правил. BPE зберігає транзакційно усі кроки бізнес-процесів у сучасній системі даних KVS на базі RocksDB.
$ sudo apt install erlang elixir build-essential cmake$ git clone https://github.com/erpuno/exo
$ cd exo
$ mix deps.get
$ iex -S mix
$ open http://localhost:8051/app/login.htmЦе навчальний приклад освітнього підготовчого курсу для інтернів, який використовується для здодобуття навичок програмування систем на бібліотеках <a href="https://n2o.dev/ua/">N2O.DEV</a>.
Структура проекту
- Вікно споживача: Профіль, Споживання, Сервіси
- Бек-офіс: Звітність, Тарифи, Ролі
- Адміністратор: BPE, FORM, KVS, N2O, MNESIA
Статичні HTML контейнери Споживача
- profile.htm Обліковий запис споживача
- consume.htm Споживання сервісів
- service.htm Налаштування сервісів та тарифи
Статичні HTML контейнери Бек-офісу
- reports.htm Звітність
- tariffs.htm Тарифні моделі
- domains.htm Рольова модель
Статичні HTML контейнери Адміністратора
- login.htm Сторінка авторизації
- bpe.htm Сторінка всіх процесів
- form.htm Сторінка всіх форм
- process.htm Сторінка історії процесу
- kvs.htm Сторінка всіх ланцюжків даних
- n2o.htm Сторінка службових таблиць сервісів N2O
- mnesia.htm Сторінка таблиць бази даних MNESIA
Базові модулі
- application Головний модуль Erlang/OTP додатку
- schema хема даних, її налаштування
- routes Налаштування маршрутів HTML сторінок для веб-серверу
Редактори форм
- bpe_pass Форма аутентифікації
- bpe_create Форма створення процесу
- bpe_row Таблична форма-рядок відображення процесу
- bpe_trace Таблична форма-рядок відображення кроку процесу
Контролери сторінок
- bpe_act Сторінка відображення історії процесу
- bpe_login Сторінка аутентифікації
- bpe_index Сторінка переліку всіх процесів BPE
- bpe_forms Сторінка відображення всіх форм системи FORM
- kvs_adm Сторінка даних KVS
- n2o_adm Сторінка таблиць N2O
- mnesia_adm Сторінка даних MNESIA
Аутентифікація
Сторінка аутентифікації та авторизаціх разом з системними сесіями є важливою частиною кожної ERP системи. У прикладі наведена PLAIN password HTML форма.
Процеси
Сторінка переліку BPE процесів ERP системи та форма для їх створення.
Форми
Сторінка переліку всіх форм ERP системи.
Транзакції
Сторінка історії кроків бізнес-процесу BPE.
Дидактичні матеріали
- <a href="https://tonpa.guru/stream/2019/2019-07-31%20N2O%20FAQ.htm">N2O FAQ</a>
- <a href="https://tonpa.guru/stream/2016/2016-01-29%20PhoenixFramework%20vs%20N2O.htm">PhoenixFramework vs N2O</a>
- <a href="https://n2o.dev/ua/books/vol.2/index.html">Книга N2O</a>
- <a href="https://n2o.dev/ua/books/vol.3/index.html">Книга ERP</a>
- <a href="https://tonpa.guru/stream/2022/2022-11-17%20%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0%20%D0%B2%D0%B5%D0%B1-%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA%D1%96%D0%B2.htm">Структура веб-фреймворків та приклад EXO</a>
Дописувачі
- Максим Сохацький