FinTP Application GUI #3

GitHub Repository – FinTP Configuration Wizzard


On this third post for RSoC program, I will present you the user interface i am working at for FinTP project. If you read my last post you should know by now that in order to configurate FinTP you have to write XML configuration files for all the connectors parts of the application.

Here is an example of a possible XML file for a particular connector.

There are some mappings for the interface, every sectionGroup in XML goes to a separate tab in UI and all its child tags goes on tab’s page as elements which can be labels, fields, drop-down menus, etc.

The purpose of this application is to read the Xml file and create the interface for it. You can then modify fields and update the current Xml or write a new one.

Until now this is how it looks. I’m using QDomDocument which is a DOM parser, while it parse the xml file it populates the UI with Qt widgets. Depending on a tag’s name, its attributes or inner text can become combo-boxes, line edits or labels.

I have also added a menu for this interface where user can open another xml file, can save the interface into a new one or it can update the existing file. These function are still under work at this time, I have to learn more about Qt signals and slots mechanism.
Until next time I will try to fix them and add some new functionalities that my mentor told me, one of them is to use XSLT files to transform our xml files into something else.

FinTP – Configuration Wizzard


This is my second post for RSoC. Last time i was telling you how vast this project is and how many things are involved to create a secured and reliable product which can be used by financial institutions.

Until now i have been working on the core part of it and i wrote cpp unit tests for some of the methods that the Transport library contains. This library have all the functions necessary to manage message queueing. As a side note, C++ is incredibly fast but sometimes it’s a bit difficult to read because all that boilerplate code.

As i was telling you in the end of my first post , I was going to work on a GUI for FinTP. A very important part of FinTP are the connectors which put messages in a local queue to be sent to a remote queue manager.
Here is an easy to understand schema i recieved from my mentor.

This application will be dinamically configured through an XML file. The main usage scenario will be something like this:

a. Application -> Load FinTPGui.config: contains user interface components description ( tab, labels, fields… )
b. User -> Choose configuration file type to be generated: read from FinTPGui.config ( tags)
c. User -> Fill in all generated fields
d. Application -> Validate fields (using xmlschema)
e. Application -> Save field values to FinTPGui.config
f. User->Confirm to generate FinTP.config file
g. Application -> Validate section constraints (eg. if last filter for Fetcher has type WMQ)
h. Application -> Save final config file to disk

The first problem I have encountered was how to parse an XML file ? Luckily the qt library already had a class for it called QXmlReader. With it I could parse an XML and generate separate fields in GUI for all xml section/tags.
I use qt 5.x and i have to say i’m impressed of the capabilities of Widgets .

Until next time i will develop some more features for this app, and in the future it will also be available on mobile devices. See you soon.

FinTP – open source alternative for payments transactions

Hello, I am Andrei Gabriel Macavei and i’m working on FinTP project which is an open source version of the qPayIntegrator software from Allevo.

This is a vast project but to understand it I first have to tell you what is Message Queuing (MQ).

Most business companies or financial institution have to use some software to deal with transactions like payment bills, etc.. This category of software is called Message Oriented Middleware and it uses a messaging protocol (MQ) that allow applications running on separate servers to communicate in an asynchronous and failsafe manner without being restricted on the system’s implementation.

Messages are sent in queues which act like a temporary storage location that holds the messages to be validated first and afterwards sends them through the network. There are many and complex layers a message have to pass to be correctly formatted and comply with the international bank regulation and SWIFT standards.

If anyone don’t have anything better to do and want to know more about it , here is a link of the documentation for Apache’s ActiveMQ software we’re using.

After understanding this now I can tell you what I’m working on. Because the purpose of this project is to re-engineer the closed source product qPI, we have to make it work without using some of the current proprietary prerequisites(i.e. ActiveMQ which is open source instead its proprietary brother WebSphereMQ). The best way of doing this is to write unit tests so we can know what went wrong when changing something in the code.

The technologies I’ m working with are

  • C++ – for core engine cause it needs to be fast and with C++ you can optimize that
  • cppunit – a testing framework which is a C+++ port of JUnit framework
  • Qt – for building an appplication interface.

What we hope to achieve in the end is a modular and open source product where clients that are using this software don’t have to know all the details about how a Message Oriented Middleware is implemented and can just use it to create their own version of software adapted for their needs.

I have also discussed with my mentor Gabriel Stanciu and we both agreed on doing a GUI tool in Qt which will be configurable through an XML file. This will give users an easier way for writing configuration files.

This was my first blog post for ROSEdu Summer of Code , I hope it wasn’t that hard to diggest :)