Skip to content
No description or website provided.
JavaScript Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
db adding a production database
public removing user name from page titles
spec show all expenses by default and only show tagged ones when tags are …
views show all expenses by default and only show tagged ones when tags are …
.gems adding ruby-debug as a dependency
.gitignore groups can log in\!
README.markdown updated README with how-to launch
Rakefile use database URLs for DataMapper setup. I learn a lot from heroku.
automigrate_check.rb renaming application to thrifty adding the rack config file for deploy on heroku
event.rb removing the pot model
expense.rb show all expenses by default and only show tagged ones when tags are …
group.rb users log in to the site instead of groups
my_helpers.rb a flash implementation where flash_reset need not to be integrated in…
participant.rb event belongs to a manager
populator.rb * fixing taggings when populating the database and adding spent_at to…
tag.rb expenses can be summed up per tag
tagging.rb introduce tag and taggings
thrifty.rb Forms have a nice layout now.
todos.markdown show all expenses by default and only show tagged ones when tags are …
user.rb 'From' and 'To' dates can be selected on the expenses page. Only expe…




Thrifty is a simple "two-page" application written in Sinatra to keep track of your spending. After a quick registration you can start adding your expenses. You can add tags for each expense and optionally set a date the money was spent.

On the other page of the app you can filter your expenses by selecting the tags you provided when creating the expenses. You can also narrow down your results by providing a date range.

Running it

On your machine

You will need to install the following gems to run Thrifty on your machine:

gem install sinatra
gem install datamapper
gem install sqlite3-ruby
gem install do_sqlite3

Before the first run you'll need to create the sqlite database and the tables the app uses. I provided a rake task to do this, so you simply need to do:

rake db:dev:automigrate

If you'd like your database to be populated with some semi-random data so you don't need to create user and spending instances manually, you can do:

rake db:dev:populate

If you'd like to recreate the database tables and populate them, you can run:

rake db:dev:reinit

Once all the things are in place, you can launch the app simply be typing:

ruby thrifty.rb

On the test server

If you would like a test ride without bothering with installing gems, head over to Please let me know if it is not available there. Please note that I can not assume any responsibility for the safety, integrity or secrecy of your data stored on this test server.

Further development

This is a very early beta so there are definitely some outstanding issues that I would like to address. Perhaps the major one is adding validations. Also, I am planning to add UTF-8 support so non-English speakers can add/tag their spending in their mother tongue.

Release notes

The code is released under the MIT license so please feel free and even encouraged to fork away! Also, if you have suggestions or comments, just let me know.

Copyright (c) 2009 Balint Erdi, released under the MIT license

Something went wrong with that request. Please try again.