RSS Feed
Oct 8

How to use Gmail as an Issue tracker

Posted on Monday, October 8, 2012 in User

If you are working on any project  (technical or otherwise), it is often necessary to have an issue tracker or “to-do” list which pending issues are tracked. There are many services which have been developed to fulfill this need, like Trac, Redmine, ChiliProject which offer self-hosted solutions, as well as others like GitHub issues and Trello which offer hosted solutions for tracking tasks and issues. And then comes the work of triaging and prioritizing…

Often times, issues are raised through email and you respond and have to track that issue to completion in your email. This is especially relevant in user support where help is requested through email. One such system which is built around email is IssueBurner. IssueBurner allows you to forward your emails to a specially assigned email and then be able to track them as issues.

As an alternative to the above solutions, I have been able to realize an issue tracker system using only the free Gmail service. Two Gmail features come in very handy in this regard: superstars and inbox sections. Gmail superstars is a feature which enables you to star messages not just with the yellow star, but also with a red bang, green tick, blue star and much more.

Superstars can be enabled and arranged under Settings -> General. For my issue tracker, I use 3 stars – a red bang, green tick and yellow star – in that order. But you could add more if you wanted to indicate more intermediate states.

Next step is to go to Settings -> Inbox and arrange your inbox sections so that you have the sections “Unread, Starred, Everything else” in that order. Also, under ‘Options’, set the Unread section to “Hide section when empty”.

Now you are all set, whenever you get new email, you always see the unread mails at the top. When you read and star a message, it moves to the starred section and has the red bang. When the issue is complete, you can click on the star again to give it a green tick. Combine this with conversation view and you have a fully functional issue tracking/user support system based only on email. The end result should look something like this:

When there are no unread emails, only the ‘Starred’ and ‘Everything else’ sections are displayed. Now you have a complete issue tracker which lets you keep track of issues in progress. If you are sharing the support email with others, you could use another star to indicate when an issue has been assigned to someone. Go forth now and track all the things!!

Aug 14

Announcing Gnucash for Android beta1

Posted on Tuesday, August 14, 2012 in Coding, User

Just like with the previous alpha release, the first beta release of Gnucash for Android is now available.

It contains many bug fixes since the last alpha and introduces a new dark ActionBar theme.
This is also the first test release under the new Apache 2 license.
You need to uninstall any previous alpha releases before installing this version.You can grab it here:
Or here is a QR code for download:
Note that this is still a test version, Not suitable for production use. The usual disclaimers apply.
Finally, here are some screenshots for your viewing pleasure:
Screenshots of GnucashMobile
Aug 13

Using Intents in Gnucash for Android

Posted on Monday, August 13, 2012 in Coding, User

In the last post announcing the second alpha release of GnucashMobile for Android, I promised to go into more detail about how to interact with Gnucash through Intents.

The alpha2 release introduced support for third-party applications to record transactions and create accounts using Intents on Android. These are the only two operations which are currently supported through intents. Deleting accounts and transactions is not supported, neither is retrieving a list of accounts and/or transactions.

You happen to be creating some awesome new Android app which allows users to pay for things or otherwise perform financial transactions like receive money (e.g. Paypal) etc. It so happens that your user is also using GnucashMobile to track her finances. What is the nice thing to do? Automatically record transactions for the user of course. This is one of the strong suits of the Android platform, cross-application communication.

First, you will need to declare permissions in your app which allow you to create accounts and transactions. This will enable the user to see upon installation that the application is indeed allowed to manipulate her Gnucash data.

It is recommended that each application should create an account for its own transactions. If you do not do so, your transactions will be recorded, but never seen by the user since there will be no account associated with them. Transactions are strongly bound to the accounts in which they occur. In order to create an account and a transaction, you need code that looks like the following:

Some notes about the account creation intent extras:

  • EXTRA_TITLE is just that, the name of the account.
  • EXTRA_UID allows you to specify a unique identifier for the account, maximum of 22 alphanumeric characters. This unique identifier is the same which will be used when creating transactions (see below) to assign them to this account. Try to make this something which will be unique to your app, because the database will reject any account with a duplicate UID.
  • The extra “org.gnucash.extra.currency_code” is the ISO 4217 currency code which specifies what currency the account will use.
  • Finally, the mime type is very important. This will allow Android to route your intent directly to the GnucashMobile app which should be the only one declared to handle that type. If it is absent, your request could go to any one of a dozen apps which handle Intent.ACTION_INSERT.

Now, notes about the transaction creation intent extras:

  • The mime type for transactions should also always be included for the same reasons as for the account
  • Intent.EXTRA_TITLE is the description of the transaction. Usually a short descriptive name.
  • Intent.EXTRA_TEXT is for more text details about the transaction.
  • “” allows you to specify the amount of the transaction as a double.
  • “” allows you to specify the account to which this transaction belongs. Should typically be an account which you created for your app. So this should be the same value as Intent.EXTRA_UID for accounts

Lastly some general notes about transactions.

  • You cannot specify a unique Identifier for a transaction, as that is automatically generated for each transaction.
  • Also, the time of the transaction will be the time when the broadcast reaches Gnucash Mobile. So you should send your broadcast as close to the actual transaction time as possible. There is no facility for specifying this in the intents.
  • Note that transactions also take the currency of their accounts. So you cannot store transactions in Euros in an account which uses US dollars.

So there you go, you can now record intents directly from your app and your users will love you for it. I look forward to an ecosystem building around this where users will simply be able to open Gnucash and see a history of all their transactions from different applications.