> For the complete documentation index, see [llms.txt](https://moshe-1.gitbook.io/comrade/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://moshe-1.gitbook.io/comrade/development.md).

# Development

## Tech stack

### Backend

* python 3.7
* [Sanic](https://github.com/huge-success/sanic) - Async Python 3.6+ web server/framework | Build fast. Run fast.
* [uvloop](https://github.com/MagicStack/uvloop) - Ultra fast asyncio event loop.
* [elasticsearch-py-async](https://github.com/elastic/elasticsearch-py-async) - Backend for elasticsearch-py based on python's asyncio module.

### Frontend

* [Vue.js](https://vuejs.org/) - The Progressive JavaScript Framework
* [Vuetify](https://vuetifyjs.com/) - Material Design Component Framework
* [Cypress](https://www.cypress.io/) - Fast, easy and reliable testing for anything that runs in a browser. Install *Cypress* in seconds and take the pain out of front-end testing.

## Setting up

Please follow the [installation guide from source](/comrade/installation/from-source.md)

## Running Tests

### Server tests

```
py.test server
```

### End to end (cypress)

```
cd e2e
npx cypress run
```

## Linters

### flake8

```
cd server
pipenv run flake8 --ignore=E501
```

### eslint

```
cd client
npm run lint
```
