Embedded frontend showcase made with slint for controlling an AI-powered coffee machine, which detects coffee cups and selects a product based on the type of cup. The frontend itself communicates with the backend (the coffee machine) via a websocket connection. A mock backend is included in this repository.
Slint uses Rust, so Rust has to be installed. For development (mock websocket/REST Server) NodeJS is needed.
- Rust compiler (1.75 or newer)
- Node.js
- npm
-
Precondition: Websocket and REST Server must run, otherwise the application will fail.
You can also start the Mock websocket and REST Server:
npm install --include dev cd websocketserver node manual_coreservice_mock.js -
Build and run
cargo run
The application expects the websocket server endpoint to be reachable on the same device at
ws:://localhost:3000/frontend.
To use a different websocket server endpoint, you can place a config.yaml file in
/usr/share/coffee-app, with the custom address set in the parameter websocket_address. E.g.:
echo 'websocket_address: ws://192.168.3.10:3000/frontend' >| /usr/share/coffee-app/config.yamlThe code in this repository is licensed under MIT, see LICENSE, except for the fonts
in ui/assets/fonts/ which are licensed under OFL.
Note that this project uses slint, which is licensed under GPLv3. If this software is distributed together with that library, then it must be distributed under the conditions of GPL. If this is not an option, then a different license can be purchased for slint.