2019-05-07 11:38:25 -04:00
overleaf/web
2014-02-13 13:18:05 -05:00
==============
2019-05-07 11:38:25 -04:00
overleaf/web is the front-end web service of the open-source web-based collaborative LaTeX editor,
[Overleaf ](https://www.overleaf.com ).
It serves all the HTML pages, CSS and javascript to the client. overleaf/web also contains
2014-02-13 13:18:05 -05:00
a lot of logic around creating and editing projects, and account management.
2016-07-04 11:03:29 -04:00
2019-05-07 11:38:25 -04:00
The rest of the Overleaf stack, along with information about contributing can be found in the
2019-11-12 03:56:33 -05:00
[overleaf/overleaf ](https://github.com/overleaf/overleaf ) repository.
2014-02-13 13:18:05 -05:00
2017-11-23 11:45:46 -05:00
### Running the app
The app runs natively using npm and Node on the local system:
```
$ npm install
$ npm run start
```
2019-05-23 09:12:22 -04:00
### Running Tests
To run all tests run:
```
make test
```
To run both unit and acceptance tests for a module run:
```
2024-08-22 10:25:00 -04:00
make test_module MODULE=saas-authentication
2019-05-23 09:12:22 -04:00
```
2017-11-23 11:45:46 -05:00
### Unit Tests
The test suites run in Docker.
Unit tests can be run in the `test_unit` container defined in `docker-compose.tests.yml` .
The makefile contains a short cut to run these:
```
2019-05-20 08:07:54 -04:00
make test_unit
2017-11-23 11:45:46 -05:00
```
During development it is often useful to only run a subset of tests, which can be configured with arguments to the mocha CLI:
```
2019-05-20 08:07:54 -04:00
make test_unit MOCHA_GREP='AuthorizationManager'
2017-11-23 11:45:46 -05:00
```
2019-05-23 09:12:22 -04:00
To run only the unit tests for a single module do:
```
2024-08-22 10:25:00 -04:00
make test_unit_module MODULE=saas-authentication
2019-05-23 09:12:22 -04:00
```
Module tests can also use a MOCHA_GREP argument:
```
2024-08-22 10:25:00 -04:00
make test_unit_module MODULE=saas-authentication MOCHA_GREP=SSO
2019-05-23 09:12:22 -04:00
```
2017-11-23 11:45:46 -05:00
### Acceptance Tests
Acceptance tests are run against a live service, which runs in the `acceptance_test` container defined in `docker-compose.tests.yml` .
To run the tests out-of-the-box, the makefile defines:
```
2018-03-20 07:00:37 -04:00
make test_acceptance
2017-11-23 11:45:46 -05:00
```
However, during development it is often useful to leave the service running for rapid iteration on the acceptance tests. This can be done with:
```
2018-03-20 07:00:37 -04:00
make test_acceptance_app_start_service
make test_acceptance_app_run # Run as many times as needed during development
make test_acceptance_app_stop_service
2017-11-23 11:45:46 -05:00
```
2018-03-20 07:00:37 -04:00
`make test_acceptance` just runs these three commands in sequence and then runs `make test_acceptance_modules` which performs the tests for each module in the `modules` directory. (Note that there is not currently an equivalent to the `-start` / `-run` x _n_ / `-stop` series for modules.)
2017-11-23 11:45:46 -05:00
During development it is often useful to only run a subset of tests, which can be configured with arguments to the mocha CLI:
```
2019-07-11 11:23:03 -04:00
make test_acceptance_run MOCHA_GREP='AuthorizationManager'
2017-11-23 11:45:46 -05:00
```
2019-05-23 09:12:22 -04:00
To run only the acceptance tests for a single module do:
```
2024-08-22 10:25:00 -04:00
make test_acceptance_module MODULE=saas-authentication
2019-05-23 09:12:22 -04:00
```
Module tests can also use a MOCHA_GREP argument:
```
2024-08-22 10:25:00 -04:00
make test_acceptance_module MODULE=saas-authentication MOCHA_GREP=SSO
2019-05-23 09:12:22 -04:00
```
2019-02-28 05:57:35 -05:00
Routes
------
Run `bin/routes` to print out all routes in the project.
2014-02-13 13:18:05 -05:00
License and Credits
-------------------
2014-04-04 09:08:55 -04:00
This project is licensed under the [AGPLv3 license ](http://www.gnu.org/licenses/agpl-3.0.html )
2014-02-18 11:15:30 -05:00
### Stylesheets
2019-05-07 11:38:25 -04:00
Overleaf is based on [Bootstrap ](http://getbootstrap.com/ ), which is licensed under the
2014-02-18 11:15:30 -05:00
[MIT license ](http://opensource.org/licenses/MIT ).
All modifications (`*.less` files in `public/stylesheets` ) are also licensed
under the MIT license.
2014-02-13 13:18:05 -05:00
2014-02-13 13:19:51 -05:00
### Artwork
2014-02-13 13:18:05 -05:00
#### Silk icon set 1.3
We gratefully acknowledge [Mark James ](http://www.famfamfam.com/lab/icons/silk/ ) for
releasing his Silk icon set under the Creative Commons Attribution 2.5 license. Some
2019-05-07 11:38:25 -04:00
of these icons are used within Overleaf inside the `public/img/silk` and
2014-02-18 11:15:30 -05:00
`public/brand/icons` directories.
2014-02-13 13:18:05 -05:00
2014-02-13 13:19:51 -05:00
#### IconShock icons
2014-02-13 13:18:05 -05:00
We gratefully acknowledge [IconShock ](http://www.iconshock.com ) for use of the icons
in the `public/img/iconshock` directory found via
[findicons.com ](http://findicons.com/icon/498089/height?id=526085# )