CBA - Community Base Application Template
Issues
Known issues maintained in Github-Issues
Quickstart
I highly recommend to use RVM!
Requirements for CBA:
- A running MongoDB Server
- A rvm gemset for Rails Rails 3.1.0/3.1.1
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 andreas@altendorfer.at
curl -o install_cba.rb \ https://raw.github.com/iboard/CBA/master/install.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
Installation
- 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_IDin the browser-address will be replaced by/p/title_of_the_pagewith JS.
Testing with Spork
To run autotests you have to start the spork-server and then run autotest command
AUTOFEATURE=true bundle exec sparkAUTOFEATURE=true bundle exec autotest
To run your unit-tests using spork do
bundle exec spork TestUnit --port 8988testdrb -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
License
See: Freedom
Links
See: Link-page