A budgeting app built on Sinatra (view it at sumapp.com)
JavaScript Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
db/migrate
features
lib
public
spec
vendor/fetcher
.gitignore
Capfile
MIT-LICENSE
README.markdown
Rakefile
config.ru
gemspec.rb

README.markdown

Sum

A budgeting app built on Sinatra. Use it at sumapp.com.

Compatibility

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 sum@sumapp.com 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 http://gemcutter.org

Fork the Sum repository on GitHub.

git clone git@github.com:YOUR_NAME/sum.git
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:

shotgun

Architecture

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:

cucumber
spec .