h1. Locomotive CMS

"!https://secure.travis-ci.org/locomotivecms/engine.png!":http://travis-ci.org/locomotivecms/engine


Locomotive is a simple but powerful CMS based on liquid templates and mongodb database. At my company ("NoCoffee":http://www.nocoffee.fr), we use it for our clients when they request a simple website.

If we have to give a couple of features to describe our application, there will be:

* managing as many websites as you want with one application instance
* nice looking UI (see http://www.locomotivecms.com for some screenshots)
* flexible content types
* content localization out of the box
* playing smoothly with Heroku, Bushido and MongoHQ
* inline editing (wip)
* API

h2. Strategy / Development status

We already developed a fully functional prototype in Rails 2.3.2 with both active record / mongomapper and it worked quite well. We are even using it for some client websites.
Now, our goal is to port our prototype to Rails 3 and migrate from mongomapper to mongoid. Besides, we put a lot of efforts to make it as robust as we can by writing better specs than we wrote for the prototype at first.

h2. Gems

Here is a short list of main gems / technologies used in the application.

* Rails 3.2.3
* Mongoid 2.4.6 (with MongoDB 2.0)
* Liquid
* Devise
* Carrierwave
* Haml
* Formtastic
* Cells
* Coffeescript / Backbone / SASS

h2. Installation

See the "official website":http://www.locomotivecms.com

h2. Upgrading

We work on the procedure to upgrade from a previous version of the engine (below the 2.0.0)

h2. Community

* Get help or discuss locomotive CMS at the "LocomotiveCMS Google group":https://groups.google.com/forum/?fromgroups#!forum/locomotivecms or the "LocomotiveCMS Discussion Forums":http://locomotive.vanillaforums.com/ (deprecated)
* Join us on IRC "#locomotivecms at irc.freenode.net!":http://webchat.freenode.net/
* "Follow us on twitter":http://twitter.com/locomotiveapp

h2. Contributing to Locomotive

Locomotive CMS is an open source project, we encourage contributions. If you have found a bug and want to contribute a fix, or have a new feature you would like to add, follow the steps below to get your patch into the project:

* Install ruby and mongoDB
* Clone the project <code>git clone git@github.com:locomotivecms/engine.git</code>
* Setup a virtual host entry for <code>test.example.com</code> to point to localhost
* Run the tests <code>rake</code>
* Write your failing tests
* Make the tests pass
* "Create a GitHub pull request":http://help.github.com/send-pull-requests

For new features (especially large ones) it is best to create a topic on the "Google group":https://groups.google.com/forum/?fromgroups#!forum/locomotivecms first to make sure it fits into the goals of the project.

h2. Team

* Developers: "Didier Lafforgue":http://www.nocoffee.fr, "Mario Visic":http://www.mariovisic.com, "Jacques Crocker":http://www.railsjedi.com
* Contributors: "Dirk Kelly":http://www.dirkkelly.com, "Raphael Costa":http://raphaelcosta.net (Brazilian Portuguese translation), "Bernd Hauser":http://www.designhunger.de (German translation), "Andrea Frigido":http://www.frisoft.it (Italian translation), "Enrique García":https://github.com/kikito (Spanish translation), "Lars Smit":https://github.com/larssmit (Dutch translation), "PitOn":https://github.com/GarPit (Russian translation), "paulsponagl":https://github.com/paulsponagl
* UI Designer: "Sacha Greif":http://www.sachagreif.com
* IE maintainer: "Alex Sanford":https://github.com/alexsanford

h2. Support

Bernd Hauser from "designhunger":http://www.designhunger.de funded the following feature: *has_one* / *has_many* between content types.

h2. Credits

"Rodrigo Alvarez":http://blog.codecaster.es/ for his plugin named Congo which gave us a good starting point and for his availability for (very late) tech discussions.

"Emmanuel Grard":http://www.grardesign.com designed the awesome locomotive illustration in the locomotivecms.com landing page.

h2. Contact

Feel free to contact me at didier at nocoffee dot fr.

Copyright (c) 2012 NoCoffee, released under the MIT license
...
