README.md
# <a name="top"></a>About [![Build Status](https://travis-ci.org/newscoop/JS-Scoopwriter.svg?branch=master)](https://travis-ci.org/newscoop/JS-Scoopwriter) [![Coverage Status](https://coveralls.io/repos/newscoop/JS-Scoopwriter/badge.svg?branch=master&service=github)](https://coveralls.io/github/newscoop/JS-Scoopwriter?branch=master) [![Code Climate](https://codeclimate.com/github/newscoop/JS-Scoopwriter/badges/gpa.svg)](https://codeclimate.com/github/newscoop/JS-Scoopwriter) [![devDependency Status](https://david-dm.org/newscoop/JS-Scoopwriter/dev-status.svg)](https://david-dm.org/newscoop/JS-Scoopwriter#info=devDependencies)
JS-Scoopwriter is a new modern article edit screen for
[Newscoop](https://github.com/sourcefabric/Newscoop),
[Sourcefabric](https://www.sourcefabric.org)'s open source CMS for news. This single page application is written in AngularJS and bundled into the respective Newscoop plugin. Its aim is to provide a modern and responsive interface as an alternative to the existing article edit screen.
![scoopwriter](http://i60.tinypic.com/wiwuf8.png)
# Table of Contents
* [Getting Started](#gettingStarted)
* [Browser Compatibility](#compatibility)
* [How to Contribute](#contribute)
* [Things to Improve](#toImprove)
* [Endpoint Routing](ROUTING.md)
* [Newscoop Plugin](PLUGIN.md)
# <a name="gettingStarted"></a>Getting Started
## Dependencies
* `node` - http://nodejs.org/download/ (follow instruction for your specific platform)
* `npm` - comes with node now
* `grunt` - npm install -g grunt-cli
* `bower` - npm install -g bower
## Setup
In order to run it you need to have all the dependencies listed
above installed on your machine. Clone the repository and then
install the dependencies:
$ git clone <repo address>
$ cd JS-Scoopwriter
$ npm install . # note the trailing dot
$ bower install
NOTE: if you get a lot of `EACCES` errors, you might want to run the third
command with superuser privileges (e.g. by prefixing it with `sudo`).
## Run
To run the application, simply type the following in console (from inside
the directory you cloned the repository into):
$ grunt server
You can now access the application by pointing your browser to
**localhost:9000**. To stop the server, press `<CTRL> + C` in the console
window where you started it.
## Test
Unit tests depend on the [karma](http://karma-runner.github.io/) test runner.
To run them, type the following in console:
$ grunt test
By default it runs tests in Chrome and Firefox. If you don't have these
browsers installed or if you want to run tests in a different browser, change
the corresponding setting in the `karma.conf.js` file (the `browsers` option).
The code is covered with tests and we offer you a continuous integration setup including [Travis](https://travis-ci.org/newscoop/JS-Scoopwriter), [Code Climate](https://codeclimate.com/github/newscoop/JS-Scoopwriter), [BrowserStack](https://www.browserstack.com) and [SauceLabs](https://saucelabs.com). Check the current test coverage on [Coveralls](https://coveralls.io/github/newscoop/JS-Scoopwriter).
### <a name="testCoverage"></a>Coverage Report
In order to get coverage reports, uncomment the `reporters` section in the
`karma.conf.js` file. All test must pass, otherwise the reports will not be
generated.
After running the tests, coverage reports are produced in the `coverage`
subdirectory located directly under the the application's root directory.
Reports are generated for every browser version the tests were run in, each
bundle in its own subdirectory.
To view the reports, open the `index.html` in one of these subdirectories, e.g.
for Firefox the path to it looks something similar to this:
`<aes_dir>/coverage/Firefox\ 34.0.0\ \(Ubuntu\)/index.html`
([Back to Top](#top))
# <a name="compatibility"></a>Browser Compatibility
* Chrome 39.0
* Firefox 30.0
* Internet Explorer 10+
* Safari 8.0
([Back to Top](#top))
# <a name="contribute"></a>How to Contribute
You want to contribute to the project? That's great and we really appreciate
it! Before sumbitting your work though, please read the
[contributing guideline](CONTRIBUTING.md) for the details on how to do it.
Thanks!
([Back to Top](#top))
# <a name="toImprove"></a>Things to Improve
([Back to Top](#top))