Inspiration
I recently learned about MQTT and i started doing some small projects with the eclipse mosquito MQTT broker and the esp-32 board, after a while i thought that it would be a good idea to have a web client that runs alongside the broker that i can access from anywhere on the network with any device. At the same time i found out about the Quarkus hackathon, so i gathered some teammates and we started the project.
What it does
Hermes is an easy to use MQTT web client that can be ran alongside an MQTT broker making it easier to send MQTT messages, it uses the quarkus framework (specifically the RESTeasy and the Smallrye Reactive messaging extensions) in order to be fast, and lightwheight. The user can publish MQTT messages to any topic he desires and can also recieve messages from a predetermined topic, all from within the web ui.
How we built it
We used the RESTeasy extension to serve the web page and handle the various web requests and we utilized the Smallrye Reactive Messaging for MQTT to handle all the MQTT messages that will be sent to and from the application.
Challenges we ran into
We started the project pretty late so we didn't have much time to polish it, also we didn't have any experience in JAX-rs, Quarkus, or reactive streams. also making the user choose the topic to subscribe was a challenge.
Accomplishments that we're proud of
Managing to make something functional considering our available time and minimal experience and making the server able to publish messages to many different topics.
What we learned
The whole project from start to finish has taught us a lot of new stuff. We learned even more about java and jax-rs, we learned more about maven and the quarkus framework and we also learned how to containerize an application and package it.
What's next for Hermes
We are planning to continue developing Hermes to make it more feature rich. We plan to add features like multiple users, the ability to subscribe to different topics from the web page, a functioning settings page etc.
Built With
- java
- jaxrs
- mqtt
- quarkus
- reactivemessaging
Log in or sign up for Devpost to join the conversation.