Project: Online household financial management tool

From this list


Intermediate, Web, Parsing, Extensible


AFAS Personal is a simple financial management tool. Its main features include:

The idea here is to recreate a subset of the aforementioned functionality, with the ability to extend it later on with more features. Finally, have it run on a VM / Docker instance (or just on your local machine).

What you will learn

A lot, actually. This would take you through the entire cycle of thinking about program structure, development, testing / debugging and deployment.

Things you will encounter:

You can always throw more stuff into the mix. Want to use lens in an actual project? Go for it! Want to create a simple data store that can be queried via a web API generated with servant and write the program logic in another language entirely? No problem.

Rough implementation guide

Because this is a very broad project, the suggested steps are very rough.

  1. You’ll probably want to be able to get your transaction data from your bank first. This might involve a lot of hoops or the use of a browser extension to do it reliably.

  2. Then, you’ll want to be able to parse that raw data into a Haskell data structure to do stuff with it.

  3. From here on out, you’re on your own. Some high-level design decisions for you to contemplate:

Bonus features