Articles

Projects

Fixed asset management system

Fixed asset management system thumbnail
Many companies rely on spreadsheets to keep track of their fixed assets. However, spreadsheets are commonly designed to be edited manually, which makes automation difficult.
Node.jsWebProjectsMongoDB

Image upload microservice

Image upload microservice thumbnail
An image is worth a thousand words and probably even more if comparing their size in bytes. When designing my CMS, I originally intended to store images directly in the article, encoded in Base64. However, this would considerably increase the size of each article, making the whole CMS slow.
WebWIPNode.jsMongoDBProjects +1

Cashless payment system

Cashless payment system thumbnail
A company I worked for had a coffee machine for which employees could purchase coffee. However, the payment was done by putting coins in a jar. Not only did this present the obvious risk of theft, this system was also impractical for people not carrying spare change at all time. I decided to solve this issue by designing this cashless payment system.
ElectronicsProjectsIoTMongoDBNode.js +1

Express authorization middleware

Many applications require some form of authorization mechanism to prevent users from accessing restricted content. Authenticated users are commonly in possession of a cookie containing identification data. With the authentication microservice that I designed, this cookie contains a JWT that contains the user's username. This JWT is sent in the authorization header of HTTP requests. Thus, authorization can be performed easily within each application by simply decoding the JWT. To do so, I designed this simple middleware for ExpressJS.
ProjectsSecurityNPMExpressNode.js

LINE Bot

LINE Bot thumbnail
<p>LINE offers an API to developers looking into creating chat bots. I created my own so that I could send myself notifications.</p>
Node.jsExpressProjects

Credit card transactions web scraper

Credit card transactions web scraper thumbnail
The company behind my credit card provides a web interface which includes a log of the transactions that have been made. The objective of this project is to automatically retrieve this log everyday and store its data in a database so as to display it on a custom dashboard.
ProjectsPuppeteer

IoT heater controller

IoT heater controller thumbnail
The thermal insulation of my apartment not being the best, I decided to buy an electric heater in order not to freeze during cold winter nights. However, the one I got was probably too powerful for my needs and letting it run for too long would heat up my place too much. Thus, I added a wifi enabled controller to it so its operations are controlled by my home automation system.
Projects3D printingESP8266IoTElectronics

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

Control IoT devices with a Xiaomi Mi Band 2

Control IoT devices with a Xiaomi Mi Band 2 thumbnail
Smartwatches can be rather expensive and tend to be known for their poor battery life. On the other hand, Xiaomi's Mi band 2 is cheap and its battery lasts for up to 20 days. However, the Mi band 2 is mainly limited to fitness tracking functions, at least without the appropriate apps.
ProjectsIoTMQTT

Odroid XU4 server

Odroid XU4 server thumbnail
Having one's own server provides the ability to run web services 24/7. However, having a computer running all the time can significantly increase one's electricity bill. The objective of this project was to build a low power home server capable of running common software (Apache, Node.js, etc.) while only consuming little power.
3D printingProjectsLinux