https://github.com/nayibor/erl_monitor
payment card fraud and error monitoring system using LYME stack (Linux,Yaws web server,Mnesia database,Erlang)
https://github.com/nayibor/erl_monitor
elixir erlang erlydtl iso8583 mnesia payment-processing realtime websockets yaws
Last synced: about 1 month ago
JSON representation
payment card fraud and error monitoring system using LYME stack (Linux,Yaws web server,Mnesia database,Erlang)
- Host: GitHub
- URL: https://github.com/nayibor/erl_monitor
- Owner: nayibor
- Created: 2017-02-05T19:21:43.000Z (over 9 years ago)
- Default Branch: develop1
- Last Pushed: 2025-07-03T03:34:08.000Z (11 months ago)
- Last Synced: 2025-07-03T04:33:02.791Z (11 months ago)
- Topics: elixir, erlang, erlydtl, iso8583, mnesia, payment-processing, realtime, websockets, yaws
- Language: JavaScript
- Homepage:
- Size: 4.91 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#What is this for
This application is for an opensource transaction monitoring system.
This system receives iso 8583 messages from diverse sources on a tcp-ip server.
It then extracts the iso 8583 message from the tcp server
it then passes the message through a filter using rules written in lua via the excellent [luerl](https://github.com/rvirding/luerl) erlang package
It then forwards matched messages to a websocket server for distrubition to various user browsers.
The purpose of this application is to receive real time feedback on status of transactions so that quick actions can be taken as opposed to polling of the database or other non real time means of monitoring.
##Components##
Backend web application/mis system for:
* creating,reading,updating users
* performing access management for users
* for creating rules which represent a filter for messages
* for adding and removing users from the rules
Tcp Server for
* receiving and parsing iso messages
* pass message through rule system to find if message matches rule .eg. is it a decline,balance enquiry,etc..
* sending parsed messages to websocket/email user channel for distribution based on active rule which match
Web application and tcp server built on erlang stack(yaws,mnesia,erlydtl):
* [yaws](http://yaws.hyber.org) is erlang web server
* [mnesia](http://erlang.org/doc/man/mnesia.html) is database management system packaged with erlang
* [erlydtl](https://github.com/erlydtl/erlydtl) erlang templating system based on django
* [ranch](https://github.com/ninenines/ranch) socket library used for the tcp server
* [jem.js](https://github.com/inaka/jem.js/tree/master) used for the serialization of js data to erlang term format when communicating with websocket
* [luerl](https://github.com/rvirding/luerl) used for writing the rules for filtering the iso8583 messages so it can be identified/tagged and notifications sent to various users
The ```erl_mon application``` is the web application.
The ```erlmon_sock``` is the the tcp server.
The ```erlmon_lib``` contains libraries used by ```erlmon_sock``` and ```erl_mon```.