/eva-web

Web frontend for Eva

Primary LanguageJavaScriptMIT LicenseMIT

Web interface for Eva Build Status

Let algorithms decide your life.

Disclaimer: work in progress

This project hasn't reached an alpha state yet. At the moment, it is just a tiny web interface around a simple scheduling algorithm. Some people already find this useful however, so maybe you do too!

Live

You can freely use the version available on procrat.github.io/eva-web.

If you enjoy it so far and want to say thanks, you can buy me a coffee ☕.

Build your own Eva web UI

This project is made up of two parts:

  • a small wrapper in Rust around the eva crate that interfaces with non-Rust languages using JSON messages. The root of this part is in backend.
  • a Vue.js front-end that interacts with a WebAssembly build of the Rust wrapper.

Prerequisites

If you haven't built a Rust project before, install rustup, and run rustup install nightly to install the latest nightly version of Rust.

If you haven't run a JavaScript project before, install npm.

Install wasm-bindgen-cli of the same version as wasm-bindgen in the Cargo.lock file. This program is used to generate JavaScript wrapper functions for our wasm build:

cargo install --version <same-version-as-wasm-bindgen> wasm-bindgen-cli

Build

# Install the Rust and JavaScript dependencies once
make dependencies

# Make the wasm build with JavaScript wrapper and start a development server
# with hot reloading at localhost:8080
make