Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
67 lines (45 sloc) 1.81 KB


A budgeting app built on Sinatra. Use it at


Sum is actively maintained under Ruby 1.9.1.

The flow

Fill out a form containing your total monthly bills, income, and desired savings. When you use your credit card or the ATM, send an email to with the dollar amount. Every midnight, you will receive an email with budgeting metrics for the day.

Take a look at the read email feature to see example budget email scenarios.

Development setup

Install the sum gem for its dependencies:

sudo gem install sum --source

Fork the Sum repository on GitHub.

git clone
cd sum

Copy and edit the example config files:

cp config/database.example.yml config/database.yml
cp config/mail.example.yml config/mail.yml
mate config/database.yml config/mail.yml

Create and migrate your database:

rake db:create db:migrate

Start the application with shotgun:



The application consists of a simple form that updates the user table and a non-public-facing action that doubles as a background job. The background action is designed to be curled by cron every minute. It handles email and time-sensitive user updates.

Running the test suite

Sum uses Cucumber, Webrat, and email-spec for functional tests and rspec for unit tests:

spec .