t6 IoT multiple side-projects all in one
Tags: sideprojects
Published: 2021-08-19 20:38:36

Hi all,

Some of you might claim this is not a side-project, but a full project - you can comment bellow :-)

So, in this article I'm going to tell you more about my story.

# Story of t6-IoT
Let me introduce you t6-IoT ("t6" to keep it short), it is my side-project I started few years ago (back in 2013). All began following a sensor I purchased to play with.
Actually it is a Volatile organic compounds (VOC) from [Yoctopuce](https://www.yoctopuce.com) - and it is still live & running today.
So, I decided to store captured measures from this sensor, hence began t6 project.
First version was very simple Php script ran from CLI using a CRON job and measure were stored in a SQLite3 database.
Well, nothing really special here. I still have some archived backup of the roughly 100 lines of code ; as it was not versioned yet :-).

About 2 years later (2015), the code is migrated to a nodejs application (still using the same SQLite3 database). At that time the little project get some improvements :
* introducing a new REST mode so that every measure can use an Api to send data to server.
* adding a "decision-Rule-Engine" that can trigger actions (emails and Text-message) - all stored as flat json files (no Db to handle the Rules !)
I found an old Api documentation listing 10 endpoints and using a HTTP Basic Authentication.

I then (in 2016) started to use [Github](https://github.com/mathcoll/t6) as version control.
The Api were more advanced in user management as well as in multiple resources CRUDs (Objects, Flows, Users)

From 2016 until 2018, no big change in the whole except the integration of Dashboard concept - partially customizable via Apis.

2019-2020: time to speed up development process:
* Switching from SQLite to InfluxDb for measures ;
* Implementing more flexible Snippets (reusable components) to customize Dashboards ;
* Adding more Operators and Actions-Triggers to decision-Rule-Engine ;
* Adding Over The Air (OTA) to control devices - Not talking about a simple sensor, but having Arduino boards plugged into t6
* Focusing the application on "Data first", and adding a module dedicated to Exploratory data analysis (EDA) ;

2021 is still active for this side-project:
* Sensor-Data-Fusion
* InfluxData Cloud secondary storage
* Starting some developments to process images (not only text & floats !) and identify faces and expressions - this is in progress ;

Worth to mention the reason why I said "multiple" side-projects in this article title.
Today, t6 is a server Api based ;
+ There is a Web UI + Mobile UI, using PWA and TWA (Application is available on Play Store) ; both web and mobile are consuming the same Api.
+ Arduino boards have their own dedicated SDK library (a really basic one, but still exists)
+ And of course the Api documentation is a project itself :-)

# Benefits for users
User can easily manage its own assets on t6, including OTA deployment.
User can customize triggers based on logical rules and also analyses its data collected.
The main focus of t6 is the data and its analysis, this is the keypoint on selecting this t6 product among the other. Users can get data and perform Exploratory Data Analysis (EDA) from Api and from UI.

# Some figures
* More than 400 user-accounts created so far on a free based account.
* About 2M measures so far on the whole Saas platform.

# Focus on documentation
I have a big focus on explaining this project. The documentation is splitted on the following : 
* [Wiki for functionnal doc](https://github.com/mathcoll/t6/wiki)
* [Api doc for technical implementation](https://doc.internetcollaboratif.info/) 
* [and a Roadmap for more details](https://github.com/mathcoll/t6/blob/master/ROADMAP.md)

![t6 IoT logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rmurbda3libamnh4ak97.png)

Any feedback or comment is welcomed. :-) I hope this article will bring you clarity and explanation of my side project.

Cheers.