The Personal Finance Reference Application

In order for me to stay up to date with modern IT Dev & Ops technology, I have created my own reference application.

In several blogs I am referring to this reference application. So on this page, I will reveal a bit more about the application. However, the application will never be publicly available.

In order to build any application, it helps to choose a certain topic which is easy to understand, is actually a bit useful, and contains aspects of modern enterprises.

My application is about personal finance. The application contains a user interface where I can upload, create, download, edit, remove expenses that are related to a fiscal year and where I can modify the expenses and enhance these with fiscal components. These expenses can be categorized and summarized in order to aid me with filling in taxreturn forms.

Additionally, the application allows me to import MT940S or CAMT053 statement reports from bank accounts. The front end then allows me to search accross expenses and account statements. Which then can be correlated or not. A single payment may be related to more expenses, and an expense could also be related to more than one payment.

This application thus contains all elements that are common in all real-life enterprise applications:

  • Front end
  • Logging & Auditing
  • Security
  • Persistency & CRUD operations
  • Reporting
  • Uploading/Downloading
  • Internationalization
  • Formating (exporting to Excel format in downloads)
  • Regular processing of business logic

The reference appliction will contain multiple implementations of competing technologies. This way I can compare technologies and try out multiple things.

One of the benefits of that is also understanding the portability of certain solutions and the required impact of migrations.

The reference application now contains:

  • Runtime environments:
    • WebSphere Liberty
    • JBoss
    • WebSphere Application Server Full Profile
    • IBM Bluemix Cloud
  • Infrastructure
    • Windows 8.1 Pro
    • MacOSX
    • CentOS 6 cloud server
    • Raspberry PI
  • Front end technology
    • Angular JS
    • Bootstrap CSS
    • JAX-RS services with JSON
    • JAX-WS services soap 1.1/ soap 1.2
  • Persistency
    • Relational: JPA with MySQL
    • NoSQL: MongoDB
  • Formatting
    • Apache POI for creating and processing Excel formats
    • Prowide for processing SWIFT messages
  • Logging
    • SLF4J with several imlementations
      • Logback
      • Log4J & Log4J2 with xml, props, yaml
      • Java Util Logger
    • Appenders
      • NoSQL MongoDB appender of Log4J2
      • Syslog appender

Building a reference application is a lot of fun and not even that much work. Alltough… when you’re having fun….

I can recommended it to everyone. Start with some topic of your interest and just over time keep on adding little things. Usually things that you actually need in real-life projects, but having your own playground is very useful and gives you great insight in what the technology is actually about. It is certainly not some hobby project for developers. But a creative way for solution engineers and IT architects to understand,recommend, demonstrate and estimate new technology.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s