# Locomotive
[![Build Status](https://travis-ci.com/locomotivecms/engine.svg?branch=master)](https://travis-ci.com/locomotivecms/engine) [![Code Climate](https://codeclimate.com/github/locomotivecms/engine/badges/gpa.svg)](https://codeclimate.com/github/locomotivecms/engine) [![Coverage Status](https://img.shields.io/coveralls/locomotivecms/engine.svg)](https://coveralls.io/r/locomotivecms/engine?branch=master) [![Join the chat at https://gitter.im/locomotivecms/engine](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/locomotivecms/engine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Locomotive is an open source platform to create, publish and edit sites (CMS). It is designed to save time and help you focus on what matters: front-end technology, standard development process and a very low learning curve for your clients.
Locomotive relies on a **very original workflow**:
- Sites are coded locally using our open source tool: [Wagon](https://github.com/locomotivecms/wagon).
- Sites are deployed to the platform (engine) thanks to our internal API.
- A back-office for the end-users is automatically generated based on the custom models and editable regions described by the developers.
![Locomotive](https://i.imgur.com/Qy1K4fT.jpg)
Visit the Locomotive official website [here](https://www.locomotivecms.com) for more information.
## Features
- Multi-sites natively supported
- Uses Liquid, a simple and clean templating language
- Easy to add custom sections, content types, no SQL needed
- Beautiful and intuitive editing interface
- Can fully localize all the content and pages
- Embed a Restful API to manage every site
- Develop and preview sites locally with your favorite tools **(Wagon)**
- Support for Webpack, SASS, HAML and Coffee Script **(Wagon)**
## Instructions and help
- [Documentation](https://doc.locomotivecms.com/)
- Get help with Locomotive or discuss technical issues on [Gitter](https://gitter.im/locomotivecms/engine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) or [here](https://locomotive-v3.readme.io/discuss).
- [Follow us on twitter](http://twitter.com/locomotivecms)
## Contribute
V3 has launched! Which means a lot of stuff changed and we got bunch of new features shipped in. However, Locomotive will be updated frequently with more awesome features. Have a look at our [Trello](https://trello.com/b/kRiy1dZu/locomotive-v3) board to see what's next or see where you can help out.
### Technologies
Here is a list of the main gems used to power the Locomotive platform:
- Rails 5 - *web framework*
- Bootstrap - *UI framework*
- Mongoid 6 - *Object-Document-Mapper for MongoDB 3*
- Devise 4 - *Authentication*
- Carrierwave - *Upload*
- Pundit - *Permissions*
### Translating the back-office
By default, the Locomotive back-office is fully translated in English, Dutch and Greek.
Adding a new language is pretty straightforward since we now manage all our I18n translation keys in [Transifex](https://www.transifex.com), a platform dedicated to this kind of task.
Here is our Transifex portal page: [https://www.transifex.com/locomotive/locomotive-engine](https://www.transifex.com/locomotive/locomotive-engine). Feel free to sign up and translate!
### How to contribute
Locomotive 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, mongoDB and phantomjs
- Clone the project git clone git@github.com:locomotivecms/engine.git
- Setup a virtual host entry for locomotive.local
to point to localhost
- Start mongodb if it is not already running
- Run the tests bundle exec rake
- Write your failing tests
- Make the tests pass
- [Create a GitHub pull request](http://help.github.com/send-pull-requests)
### Contact
Feel free to contact me at didier at nocoffee dot fr.
Copyright (c) 2019 NoCoffee, released under the MIT license