Community Base Application Template
Ruby JavaScript CoffeeScript
Failed to load latest commit information.

CBA - Community Base Application Template

Juni 28, 2013 - Extracted secret-token from config/initializers/application.rb to the file config/inititalizers/_secret.token which is not included in the repository.

If you use this project after June 28th, 2013 please create the token-file with your own secret.


Known issues maintained in Github-Issues


I highly recommend you use RVM!

Requirements for CBA:

  • A running MongoDB Server
  • A rvm gemset for Ruby 1.9.2-p290 with Rails 3.2.2

This README is a bit outdated

This README needs to be reviewed. If something will not work as documented here, don't hesitate to contact me at @nickendell or

   curl -o install_cba.rb \
   ruby install_cba.rb

This will install a fully functional web-application, with user-authentication (incl. omniAuth) on a document oriented, non-SQL, MongoDB/MongoID database. Just ready to be extended by your 'real' application code. As a benefit, CBA will offer two MVCs Page and Blog.

Note: Project's README should be identical to README.textile on Github -- I try hard to keep both versions in synchronized state, but check out the Github-version too.

CBA is forked from Rails3-Mongoid-Devise by fortuity, extended by Andi Altendorfer with

  • OmniAuth
  • Paperclip
  • CanCan
  • jQuery

CBA's own implementations

  • Models/MVC
    • User
    • Blog
    • Posting
    • Page
  • Features:
    • Comments and Attachments for all models
    • i18n enabled (en/de)
    • installation.rb (See: Posting)
    • Configuration in application.yml


  • See: Posting 'installation.rb'
  • CBA is in heavy development age, so please read CBA Blog from bottom to top. There are some latest news, not mentioned in this README.

Delayed Jobs

There is a rake-task to start the background jobs

  rake delayed_jobs:work

Unfortunatley DelayedJobs by 'tobi' doesn't work with MongoId. So I did this my own way. To define new background-workers follow this steps:

1 Define a worker in app/workers (See new_sign_up_notifier.rb) 2 Enqueue new Jobs like shown in app/model/user.rb, method async_notify_on_creation (Source)

Resource 'Page'

Since nearly any website needs some kind of 'semi-static pages' and we need some kind of object to test the application, there is a resource Page with the following features

  • Consists of a title and a body
  • The body is rendered with RedCloth
  • The MongoId of /page/MONGO_ID in the browser-address will be replaced by /p/title_of_the_page with JS.

Testing with Spork

To run autotests you have to start the spork-server and then run autotest command

  1. AUTOFEATURE=true bundle exec spark
  2. AUTOFEATURE=true bundle exec autotest

To run your unit-tests using spork do

  1. bundle exec spork TestUnit --port 8988
  2. testdrb -I test test/unit/*rb

Start all at once with thor-task

You can use thor application:run_autotests to start the spork-server and autotest. The shortest way to jump into continuos testing

Layout and Templates

  • Edit application.css or 'your_name_given_at_install'.css
  • Edit views/layout/application.html or views/layout/'your_name_given_at_install'.html.erb
  • Read Posting
  • Visit Demo Page


See: Freedom


See: Link-page