This application is a system for montoring iso8583 transactions in real time,tagging them and viewing their status in real time on web browsers.
This system receives iso 8583 messages from diverse sources on a tcp-ip server which is also called an interface server in financial transaction processing.
it then passes the message through a filter using rules written in lua via the excellent luerl erlang package
Filtered messages which are colour tagged are then sent through phoenix live view to the various user browsers where the transactions can be viewed.
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
- for creating rules which represent a filter for messages
- for creating endpoints which receive transactions
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..
- forwarding messages to outbound channel
Web application,rule engine and tcp server built using below:
- phoenix elixir web framework
- ranch erlang socket library
- luerl erlang lua library
- iso8583_erl erlang iso8583 message parser
To start your Phoenix server:
- Make sure you have elixir and postgres installed
- do a git clone of project
git clone https://github.com/nayibor/iso8583_monitor.git - change directory into iso8583_monitor project
cd iso8583_monitor - edit database config details(host,username,password) in
config/dev.exs - Run
mix setupto install and setup dependencies - Start Phoenix endpoint with
mix phx.serveror inside IEx withiex -S mix phx.server - Now you can visit
localhost:4000from your browser. - The default username is
admin@monitor.comand the default password isqwert12345!@#$% - You can create interfaces for receiving transactions and rules for colour coding transactions received
- You can send sample financial transactions from your own interface to the created interfaces at the port specified and they will be forwared to the frontend for quick view
Ready to run in production? Please check our deployment guides.
- Official website: https://www.phoenixframework.org/
- Guides: https://hexdocs.pm/phoenix/overview.html
- Docs: https://hexdocs.pm/phoenix
- Forum: https://elixirforum.com/c/phoenix-forum
- Source: https://github.com/phoenixframework/phoenix