This document is intended for software developers. For end-user documentation, please see the web app user documentation

The FarmBot web app’s frontend user interface is a single page application that allows users to control a FarmBot remotely. It supports editing of sequences, regimens, events, a virtual garden map, and much more.

Specifications

Programming Language TypeScript
UI Library ReactJS
Build System WebPack
State Management Redux JS
Repository FarmBot-Web-App

Useful developer utilities

  • window.store.getState() Get the current Redux store state from the browser’s Javascript console.
  • window.current_bot The current FarmBot instance created by FarmBot JS from the browser’s Javascript console.
  • sudo docker-compose run web npm run typecheck Runs the TypeScript type checker against the codebase in your terminal. Pull requests can not be accepted unless this step passes.
  • sudo docker-compose run web npm run test Runs unit tests to prevent regressions. This check must pass for a pull request to be accepted.

Translating the app

To add or update translations:

  1. Fork the repo
  2. Navigate to /public/app-resources/languages and run the command node _helper.js yy where yy is your language’s language code. Eg: ru for Russian.
  3. Edit the translations in the file created in the previous step: "phrase": "translated phrase".
  4. When you have added or updated translations, commit/push your changes and submit a pull request.

Content security warnings

The web app implements a content security policy to prevent certain types of security violations, such as cross-site scripting and token theft. Unfortunately, this means that some code may not execute as intended. Please raise an issue if you have any questions.