Commit e0815e02 authored by Adrian Wuillemet's avatar Adrian Wuillemet
Browse files
parents c6f9125e 2cf69837
Pipeline #4327 passed with stage
in 38 seconds
![Beads Logo](https://gitlab.beuth-hochschule.de/s40242/stategen/raw/master/source/beads/resources/ui/media/logo.png)
# Beads - A tool to generate code from state machines
_**2019** <sup>®</sup> Jakob Baatz, Rico Possienka, Pavel Nepke, Marco Wenning, Adrian Wuillemet_<br>
<br>
<br>
## Introduction
As a software developer you can encouter state machines as part of a logic that
can parse content, as a description of AI behaviour or while modelling some
buisness processes.<br>
In whatever form, state machines are cumbersome to code, as the written code is
very repetitive and it is quite easy to loose oversight as the machine gets bigger.<br>
<br>
For this purpose **Beads<sup>®</sup>** can aid you in consistently generating that
code from textfiles or drawings that you provide. Simply write a **.json**
representation of your machine or use our simplified _**.bead**_ format to write
down the logic.<br>
<br>
**Beads<sup>®</sup>** is an open source python and webtech tool that can be used
from the command line and is easy to incorporate into scripts for project builds.
Additionally the Graphical User Interface (GUI) provides means to draw visual
representations of your machines and will persist them as _**.svg**_, _**.png**_
and _**.json**_ files.<br>
**Beads<sup>®</sup>** comes with a validaten logic for simple state machines,
that can be turned off if needed.<br>
<br>
All further informations and details on writing state machines and using **Beads<sup>®</sup>**
can be found below!<br>
<br>
<br>
## Table of Contents
1. [Dependencies](#deps)
2. [Download and Installation](#download)
3. [Command line usage](#cmd)
4. [Using the Graphical User Interface](#gui)
5. [Supported file formats](#formats)
6. [Used technologies](#techs)
<br>
<br>
### 1. Dependencies
<a name="deps"></a>
**Beads<sup>®</sup>** is a commandline tool built with Python for the backend and
web technologies for the GUI. To run beads you need to have:<br>
<br>
**Python 3.x.x** <br>
**A web browser of your choice**
<br>
installed on your system. And thats it.<br>
<br>
As listed in the section [Used technologies](#techs), **Beads<sup>®</sup>** is
built with the python library [Eel](https://pypi.org/project/Eel/) which utilizes Chrome / Chromium
in app-mode to display our GUI. We do not want to force a user that wants to work with the
GUI to install chrome/chromium, neither do we want to package a distribution of them for users
that do not care about the GUI.<br>
<br>
Chrome or Chromium is only a soft dependency, with which **Beads<sup>®</sup>** - GUI
works best. Alternatively any other web browser will suffice and the system standard
browser will be used, if no chrome is detected.
<br>
<br>
### 2. Download and Installation
<a name="download"></a>
Dowloading and installing **Beads<sup>®</sup>** is extremely easy:<br>
We deploy the tool and all updates via the [Python Package Index](https://pypi.org). So to get your
hands on the tool simply install it with _pip_ and you are good to go.
```shell
pip install beads
```
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment