Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

The (in)famous Backbone Todos app ported once again.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 config
Octocat-spinner-32 jars
Octocat-spinner-32 lib
Octocat-spinner-32 packages
Octocat-spinner-32 project
Octocat-spinner-32 public
Octocat-spinner-32 sbt_jars
Octocat-spinner-32 src
Octocat-spinner-32 templates
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Procfile
Octocat-spinner-32 README.md
Octocat-spinner-32 build.sbt
Octocat-spinner-32 pom.xml
Octocat-spinner-32 run.jar
README.md

Todos NG App

This is a minimal RingoJS/Scala hybrid app targeting deployment to Heroku.
Its web layer is based on Stick and its persistence layer on Rogue.
The client-side UI layer is based on Backbone.
Basically, this is its Todos example app ported.
FYI: the app's template's on GitHub as well.

Dev

The app's persistence layer depends on MongoDB, so start it:

$ mongod

To run the app locally launch ringo
with the main script via foreman:

$ gem install foreman
$ export RINGO_ENV=dev
$ foreman start

Then point your browser to this URL:

http://localhost:5000/

To compile + package Scala & CoffeeScript on-the-fly
via sbt 0.10:

$ sbt
> ~package

BTW, for compiling/packaging once just leave off the ~.

To make an assembly of all sbt project lib dependencies:

$ sbt
> assembly:package-dependency

Deploy

$ gem install heroku
$ heroku create --stack cedar
$ heroku addons:add mongolab
$ heroku config

Now, adjust src/main/resources/props/production.default.props according to MONGOLAB_URI.
Plus, rebuild application.jar (via > package) to include this config update.

$ heroku config:add LIFT_PROD=-Drun.mode=production
$ heroku config:add RINGO_PROD=--production
$ heroku config:add RINGO_ENV=production
$ git commit -am 'Make it ready for production.'
$ git push heroku master
$ heroku open
Something went wrong with that request. Please try again.