rustimate 0.1.0

A planning poker app, mostly developed to learn Rust
Documentation
# rustimate

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](License)
[![Build Status](https://travis-ci.org/kyleu/rustimate.svg?branch=master)](https://travis-ci.org/kyleu/rustimate)
[![Crate](https://meritbadge.herokuapp.com/rustimate)](https://crates.io/crates/rustimate)
[![Docs](https://docs.rs/rustimate/badge.svg)](https://docs.rs/rustimate)
[![Dependencies](https://deps.rs/repo/github/kyleu/rustimate/status.svg)](https://deps.rs/repo/github/kyleu/rustimate)

A planning poker app, using an actix-web server communicating via websocket to WASM shared code. It's a work in progress, mostly an exercise to learn Rust.

This project's structure is available as a cargo-generate template, [generust](https://github.com/kyleu/generust)

Rust nightly is required, at least for now

See [installing.md](doc/installing.md) for installation guidance. After installing, run `rustimate -h` to get started.

See [scripts.md](doc/scripts.md) for available tools for building, running, and packaging the app.

## Crates

`rustimate` splits its code into several library crates:

- `rustimate-assets`: Contains embedded static files intended to be served from the web application
- `rustimate-client`: Run in the client's browser as a WebAssembly package, includes templates
- `rustimate-controllers`: Contains actix-web HTTP controllers, usually calling methods from `rustimate-service`
- `rustimate-core`: Contains definitions that are shared between server and client
- `rustimate-service`: Contains the primary logic for the application. It receives RequestMessages and emits ResponseMessages
- `rustimate-templates`: Contains Maud templates used by the server to render responses
- `rustimate`: Stored in the root of the project, this is the app's main library and binary

## Config

The project currently exclusively uses the filesystem for saved data, no database is involved.

### Directories

By default, the application stores config files in your system's user configuration directory. See `rustimate --help` to change the directory used.

- macOS: ~/Library/Application Support/rustimate
- Linux: ~/.config/rustimate
- Windows: %APPDATA%\kyleu\/rustimate

### Files

`profile/*`: User profile information
`session/*`: Estimation sessions