/MQTT-Explorer

An all-round MQTT client that provides a structured topic overview

Primary LanguageTypeScriptOtherNOASSERTION

Downloads Downloads Build_Status Build status Codacy Badge

screen_composite screen2_small screen3_small

The App has moved to mqtt-explorer.com

MQTT Explorer is a comprehensive and easy-to-use MQTT Client.
Downloads can be found at the link above.

This page is dedicated to its development. Pull-Requests and error reports are welcome.

Run from sources

npm install -g yarn
yarn
yarn build
yarn start

Develop

Launch Application

npm install -g yarn
yarn
yarn dev

The app directory contains all the rendering logic, the backend directory currently contains the models, tests, connection management, src contains all the electron bindings. mqttjs is used to facilitate communication to MQTT brokers.

Automated Tests

To achieve a reliable product automated tests run regularly on travis.

  • Data model
  • MQTT integration
  • UI-Tests (The demo is a recorded ui test)

Run UI-tests

A mosquitto MQTT broker is required to run the ui-tests.

Run tests with

# Run chromedriver in a separate terminal session
./node_modules/.bin/chromedriver --url-base=wd/hub --port=9515 --verbose

Compile and execute tests

npm run build
node dist/src/spec/webdriverio.js

Create a release

Create a PR to release branch. There needs to be a "feat: some new feature" or "fix: some bugfix" commit for a new release to be created

Create a beta release

Create a PR to beta branch. A "feat" or "fix" commit is necessary to create a new version.

Write docs

git clone --single-branch -b gh-pages https://github.com/thomasnordquist/MQTT-Explorer.git mqtt-explorer-pages
cd mqtt-explorer-pages
bundle install
bundle exec jekyll serve --incremental

Readme file: Readme.tpl.md

Preview is available at http://localhost:4000/Readme.tpl

Update docs

npm install
./updateReadme.ts

The readme will be generated from the docs.

License

CC-BY-ND 4.0
CC-BY-ND 4.0

The license is a little restrictive to distributing derived work, this may change in the future if the interest arises or more people work on this project.