cygnal/README.md

100 lines
2.3 KiB
Markdown
Raw Normal View History

2018-06-26 15:34:38 +02:00
Cyclassist
==========
2018-06-25 18:29:57 +02:00
2018-06-26 15:34:38 +02:00
> Track and share issues (work, interruption in routes, parked cars) in
> realtime on bike lanes!
2018-06-25 18:29:57 +02:00
2018-06-26 15:34:38 +02:00
This app is made of two parts: a client webapp and a server part to store and
serve the issues.
## Client part
### Build setup
2018-06-25 18:29:57 +02:00
``` bash
2018-06-26 15:34:38 +02:00
# Install JS dependencies
yarn install
# Serve with hot reload at localhost:8080
yarn dev
# Build for production with minification
yarn build
# Build for production and view the bundle analyzer report
yarn build --report
```
2018-06-25 18:29:57 +02:00
2018-06-26 15:34:38 +02:00
### Useful environment variables
2018-06-25 18:29:57 +02:00
2018-06-26 15:34:38 +02:00
You can pass a few environment variables to the `yarn build|dev` commands to
adapt the behavior to your needs.
* `PUBLIC_PATH=https://.../foobar` to serve the app from a subdirectory.
* `API_BASE_URL=https://...` to specify the location of the server (defaults
to `/`). The value should end with a trailing slash.
2018-06-26 16:03:14 +02:00
* `TILE_SERVER=` to pass a specific tile server to use rather than the default
one.
2018-06-26 15:34:38 +02:00
## Server part
### Build setup
``` bash
# Install Python dependencies
pip install -r requirements.txt
2018-06-25 18:29:57 +02:00
2018-06-26 15:34:38 +02:00
# Start the server
python -m server
2018-06-25 18:29:57 +02:00
```
2018-06-26 15:34:38 +02:00
It is better to use a dedicated `virtualenv` if you can :)
2018-06-25 18:29:57 +02:00
2018-06-26 15:34:38 +02:00
### Useful environment variables
2018-06-25 18:29:57 +02:00
2018-06-26 15:34:38 +02:00
You can pass a few environment variables to the `python -m server` command to
adapt its behavior:
* `HOST=` to specify the host to listen to (defaults to `127.0.0.1` which
means `localhost` only).
* `PORT=` to specify the port to listen on (defaults to `8081`).
2018-06-27 15:48:17 +02:00
* `DATABASE=` to specify a [database URL](http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#db-url) to connect to (defaults to
`sqlite:///reports.db` which means a SQLite database named `reports.db` in
the current working directory).
2018-06-26 15:34:38 +02:00
2018-06-28 15:58:36 +02:00
### Serving in production
2018-06-26 15:55:52 +02:00
You can use the `wsgi.py` script at the root of the git repository to serve
the server side part.
2018-06-28 15:58:36 +02:00
### Useful scripts
The `scripts` folder contain some useful scripts:
* `purge_old_gcum.py` deletes `gcum`-type report older than one hour. You
should set a crontask to call it regularly.
2018-06-26 15:34:38 +02:00
## Contributing
The quickest way to get started is to simply run
```
API_BASE_URL=http://127.0.0.1:8081/ yarn dev
```
to spawn the client-side webapp, listening on `localhost:8080` and
2018-06-25 18:29:57 +02:00
```
2018-06-26 15:34:38 +02:00
python -m server
2018-06-25 18:29:57 +02:00
```
2018-06-26 15:34:38 +02:00
to spawn the server-side part, listening on `localhost:8081`.
## License
This software is licensed under an MIT license, unless explicitly mentionned
otherwise.