Who cares about the piggy? I do!
As I commented in my last post, during my investigation about the state of Qt in Maemo, I decided to start implementing an idea I’ve had in my mind since I got my N900.
I guess I should start explaining that I’m a complete disaster managing my money. I don’t really know what I do with it, or where I spend it. And living in this global-crisis time, this is serious guys! I need a way to fix it.
So I thought: wouldn’t it be great if I could store all my expenses in my brand new N900, so I could not only know where I spend my money, but also be able to know my current state compared to the month budget???? Even more!!! once I have all that information stored, I could perform every kind of weird queries over it, like how much money I spend in coffee, food, beer (mmm… not sure if I want to know about this one )
And having all this information, I could start saving money, and my piggybank would be able to leave peacefully without being afraid of being killed!
I guess you already know what happens when you put a developer with an idea in front of a new technology to test so… I started the development of siggy (whose name is a declaration of intentions: Save the pIGGY!)
These were the features I wanted to have for its initial release:
- Be able to define a budget for a month
- Be able to write down expenses in that month
- Be able to easily see my evolution during the month, comparing it to an ideal one
- The creation of expenses should be as fast as possible, and I shouldn’t need to use the keyboard
- Be able to define categories to the expenses
- Autocreation of recurrent expenses
And besides those, of course, I wanted to test what could be done with Qt in the N900. So, I had also these ones:
- Integrate siggy visually with the Maemo environment as much as possible by using the custon Maemo5 QWidgets
- Internationalization support
- Integration with the backup system
- Make siggy rotation aware?
So, I created the siggy repository on gitorious and started coding: put a SQLite database here, a MVC pattern there, a custom widget to draw a graph with the expenses evolution, some basic gesture support, lots of dialogs to achieve the Maemo5 user experience, and… I’m proud to announce that I’ve just released the 0.2 version of siggy!!!
What can you find in this 0.2 release? These are the features:
- A month is represented as a graph where the expenses are represented together with an ideal evolution, so getting info about the current state is really easy and fast. User can navigate through existent months by dragging left or right in the main window
- There are two views for the month, the daily one and the accumulated one. User may change between them by clicking on the main window
- User can define a budget for each month, and define a default budget for every month
- User can create/update/delete items. An item is a category for an expense with a predefined price
- User can create/update/delete expenses in any month. An expense may or may not be associated to an item
- User can create/update/delete scheduled expenses in the application. Scheduled expenses will automatically be created in the specified months, so the user doesn’t have to create, for example, an expense for the rent each month
- Application is perfectly integrated with the Maemo5 environment
- The application has internationalization support and currently has english and spanish translations
- Both database and configuration file are integrated with system’s backup application
Of course, this are not the only features siggy will offer, but they are the basic ones needed to start using it and entering data. After this release, my plan is to start implementing features related to extract information from the stored data. But, of course, I’m willing to hear your opinions, suggestions, whatever!
You can get the source code from the siggy repository on gitorious, where you can also find a small user manual. Bear in mind that in order to build/run the application, you need to have installed the libqt4-maemo5-* packages available from the extras-devel repository. Please, feel to report any problems you can find
And as farewell, here you have some pics!