In order to present my current projects better than just by documenting them in Github, I decided to start writing them down in a blog to share these resources more easily. In case you want to follow my projects visit: Github: brakid. My goal is to provide insights into the development process of my projects and share learning that I got during the work on them.
My most recent project was the development of a Sensor hub service that allows users to create new sensors that write data to the service regularly. The project uses Docker containers to separate the different subservices of the project: the backend providing the API for sensors and the frontend, the database to store the data (MongoDB), a Redis in-memory storage to keep track of blacklisted authentication JWTs (JSON Web Tokens).
It is built on top of a Flask backend that offers a GraphQL API to allow the frontend (or potential other consumers) to read the sensor data. It handles authentication and authorization.
The frontend webapp is built using ReactJS and currently displays sensor data. Future plans include to allow users to set up alarms to monitor the sensor data and e.g send a notification in case a temperature sensor signals that the temperature is above a certain threshold.
I wanted to learn about using Docker for creating independent subsystems of a larger project and building a Sensor hub seemed to be a good fit to try it out.
See more in the project’s documentation: Github: brakid/Sensor