My wants to dive into full-stack development and practice project management skills, as well as the need for my potato to have a way to track different devices' statuses by streaming data from them.
What it does
It allows clients like a Raspberry Pi or an Android phone to stream data over MQTT. Mosca (the broker) authenticates a client, receives a packet that contains an object and then places it into a MongoDB collection for a certain topic.
The browser acts as the only interface to the frontend for the "server" for now, which is really the broker that handles connection requests and packets in MQTT. It also authenticates the owner of the network.
How I built it
I used an open source node module called Mosca so I can handle broker jobs and write a pub/sub API in Node and MQTT.js. We are developing an Android interface with Kotlin to interact with hardware abstraction layer APIs.
The main reason I chose MQTT over HTTP is that the concept of document representation in HTML is not always applicable because the client isn't always a browser. MQTT also has simpler header configurations that reduce overhead costs.
Challenges I ran into
It was easy to learn the features of MQTT. Figuring out how I exactly wanted to benefit from these features was difficult initially. The key is to switch thinking to the design of MQTT and the needs of the network. In addition, most tutorials online were surrounding the MERN stack and not many were for MQTT, so I spent more time reading docs and MQTT implementation-related articles and papers. This helped a lot with gaining a much deeper understanding of the protocol.
Accomplishments that I'm proud of
Building a big project
What I learned
Everything about MQTT, Android development (a tiny bit)
What's next for iota
Eventually I want to build an interface into every client in the network with a display and WiFi capability. DISRUPTING THE IOT SPACE BY CONNECTING THE WORLD
When it comes time to scale the database due to data accumulation over time, I will migrate my data to a remote server and do some secret magical analytics stuff. In the mean time, data is visualized through the browser UI
Build an iOS interface
Design a better-looking logo than that of Google Cloud IoT Core