## About `advotracker` supports lawyers to capture relevant data encountered during an online legal advice. The application components are implemented using the programming language *Rust*. The graphical user interface (GUI) uses the class-lib *OrbTk*, which is natively encoded in *Rust* as well. `advotracker` can be deployed on every target operating system that is officialy supported by the `OrbTK` toolkit. Currently included are: * macOS * Linux * openBSD * Redox OS * Web-Browser * Windows Porting to and in activ development are: * Android * iOS * ubuntu Touch Reference is made to the official project pages of [Rust Book][^1] and [OrbTk][^2] as documentation sources. ## Internationalization Dialogs and messages generated inside the application will respect the system language of the active user. This is adaptable via the environment variable (default: LANG = en_US.UTF8 or LANG = C). Within the source code you can find translated constants in the subdirectory 'locales' (/src/locales/advotracker.json). For every supported language-string, you will find a block starting with the generic message code, followed by the target language translation. Translation lines are identified by its ISO Code (e.g. de_DE.UTF8, es_ES.UTF8). ## Installation from source code You can either download the `advotracker` source code as a Zip-File or using `git` from projects repositoy URL. The source code is subdiveded in three crates: * advotracker * advotrackerd * advotrackerdb Currently the given WEB-URL certificate is signed by a Microsoft CA. Since this CA can't be verified from offical CA-lists you have to proceed as follows: ```sh $ cd $ git -c http.https://gitea.networkx.de:50443.sslverify=false \ clone --recurse-submodules --jobs=10 \ https://gitea.networkx.de:50443/rzerres/advotracker ``` To compile the target binary code, you have to use rusts toolchain. If this isn't already installed on your development system, please go ahead and either use the official supported installation tool from the rust communtiy ([rustup][^3]). As an alternitiv, you can download and install the compiler package using your systems package manager. ### native operating system binaries A binary compatible with your target operating system will be compiled with the following command: ```sh $ cd $ cargo build --release ``` The toolchain also allows to cross-compile for other operating systems. Please consult the rust documentation for further instructions. ### web-browser application - **Prerequisits** To run as a browser, electron or cordova app, you have to install cargo-node: ```sh cargo install -f cargo-node ``` cargo-node will require a working version of `npm` (>=v6.9.0). You may download [Node.js][^4], which includes npm as well. - **Start as browser app** You can run `Advotracker` as a web-browser app with the following call. Once the app is running, you can connect to it opening the given URL in you Web-Browser. ```sh cargo node run --target browser --bin advotracker ``` - **Start as electron app** ```sh cargo node run --target electron advotracker ``` - **Start as android app** ```sh cargo node run --target android --bin advotracker ``` ## Build and run documentation You can build and view the latest documentation by executing the following command: ```sh cargo doc --no-deps --open ``` This will render the web-pages, collecting the documentation paragraphs in the source-code. When finished, it will open a new tab in your web browser presenting the documentation. ## Installation To install the compiled binary you can use rust package manager `cargo` as well. ```sh cd $ cargo install ``` In addition, you will need to copy the resource folder into your target directory. This will provide the access to used fonts, images und stylesheets. --- [Logo-CC_BY]: https://i.creativecommons.org/l/by/4.0/88x31.png "Creative Common Logo" [License-CC_BY]: https://creativecommons.org/licenses/by/4.0/legalcode "Creative Common License" This work is licensed under a [Creative Common License 4.0][License-CC_BY] ![Creative Common Logo][Logo-CC_BY] © 2020-2021 Ralf Zerres, Networkx GmbH --- Foodnotes [^1]: Rust Book: https://doc.rust-lang.org/book/ [^2]: OrbTK GUI: https://gitlab.redox-os.org/redox-os/orbtk [^3]: Rustup: https://rustup.rs/ [^4]: Node.js: https://nodejs.org/dist/v10.16.3/