Articles

Smart home control panel (SHCP)

Smart home control panel (SHCP) thumbnail
I've been using&nbsp;<a href="https://www.home-assistant.io/" rel="noopener noreferrer nofollow">Home Assistant</a>&nbsp;to control my home IoT devices for a while. Although it fulfills all my needs, I wanted to make my own system so as to get a fully customized smart home control panel and learn how to build such an application in the process.
MQTTNode.jsIoTWebSocketProjects +2

Wireless motion sensor

Wireless motion sensor thumbnail
This is a wireless motion sensor that runs on rechargeable batteries. It can be deployed anywhere and sends a signal using an NRF24L01 wirless module whenever it detects motion.
ElectronicsProjectsArduino

IoT Kernel

Over the years, I have written firmwares for various IoT devices such as lights, locks or heaters. Those firmwares would generally handle a common set of basic functions like managing wifi connection, serving a configuration web interface over HTTP or exchange MQTT messages. However, having to implement and maintain those functions for each individual firmware quickly became tedious work. Consequently, I decided to write a library to handle all those basic functions. This library is used as a base for IoT device firmwares, on top of which device-specific logic can easily be added.
ArduinoWIPESP8266IoT

MQTT control dashboard

MQTT control dashboard thumbnail
With the cloud native multi-user MQTT platform deployed, I started designing IoT devices that I could distribute to end users. However, without a GUI, interacting with those devices would be difficult. Of course, one could install applications like MQTT dash or similar but this would require tedious configuration such as MQTT broker and topics. I wanted to give users a simpler UX so I made this simple control interface that automatically displays a users devices and allows those to be controlled.
WebVuetifyProjectsMQTTWIP

A simple comparison of Svelte and Vue

A simple comparison of Svelte and Vue thumbnail
Since its introduction in 2019, Svelte has quickly become one of the most loved JavaScript framework overtaking Vue.js in the State of JS ranking 2021 survey. This article presents a simple comparison of Vue.js and Svelte as an attempt to explain why.
SvelteVue.js

Fingerprint scanner briefcase

Fingerprint scanner briefcase thumbnail
This briefcase is fitted with an electronic lock and a fingerprint reader so as to be unlocked with a simple touch. It also features a bluetooth module, which enables unlocking using a smartphone or computer.
BluetoothProjectsArduinoElectronics

This very application, a CMS based on Neo4J

This very application, a CMS based on Neo4J thumbnail
Publishing articles on a website can be as simple as uploading HTML files to a web server. However, writing articles in raw HTML can be time consuming. A content management system (CMS) is an application designed to solve this issue by providing a simple way to create and manage web content directly from the web browser. There are many CMSs available, namely Wordpress or Joomla but I decided to create my own as a form of practice and in order to have it highly customized to my needs.
Node.jsWIPProjectsWebNeo4J

Habit tracker

Habit tracker thumbnail
Maintaining good habits can sometimes be hard. Recently, I've been looking at the way contributions are displayed on GitHub: a grid with a cell for each day, turning green if contributions have been made on that date. I realized that it motivated me to write code everyday, just to keep that grid as green as possible. So, I decided to create an app that provides a similar kind of motivation but for habits other than coding daily.
ProjectsFirebaseTypeScriptSvelte

Wardrobe and outfits management web app

Wardrobe and outfits management web app thumbnail
Have you ever bought a piece of clothing only to come home and realize you already had a similar one in your wardrobe? This happened to me the other day so I decided to fix the problem. To do so, I designed a simple web application in which the user can keep track of all the garments they own.
Vue.jsMongoDBMongooseVuetifyWIP +3

Auto CRUD

Auto CRUD thumbnail
Most web applications that manage data in a database perform at least some form of create, read, update or delete (CRUD) operations on stored records. Moreover, web applications also often expose those operations via a REST API. Most database tables - corresponding to the entities manged by the application - need their own CRUD controller and set of HTTP endpoints. Because of this, large applications can quickly become tedious to develop and maintain. However, the logic for each table is usually quite similar. Auto CRUD has been developed to reduce this workload.
ExpressProjectsNPMPrismaDatabase