Articles

Web

Camera viewer

Camera viewer thumbnail
IP cameras are cheaper than ever and with the ESP32-CAM boards it is now possible to stream video for less than USD 10. However, IP cameras are commonly either only accessible from within their network, or use servers from third party companies to allow users to see the video feed from anywhere in the world. As both scenarios are inconvenient, I decided to create a camera viewer application that can proxy the video feed to a web interface.
WebProjectsMongooseMongoDBNode.js

Modeling profile webpage

Modeling profile webpage thumbnail
Foreign models are quite in demand in Japan and as such it is not uncommon for foreigners living there to have a side activity in the modeling industry. I had the chance to meet the manager a <a href="https://azs-group.jp/" rel="noopener noreferrer nofollow">AZS entertainment</a> and was told that the agency was currently recruiting. So, since I am always looking for new life experiences, I decided to join.
WebCSS

User management microservice based on Neo4J

User management microservice based on Neo4J thumbnail
Web applications commonly require a user database and the management logic for it. Having to build such software infrastructure for each individual app would be time consuming so I designed a general-purpose user management microservice that can be easily integrated in a project.
SecurityProjectsWebNode.jsNeo4J

Food manager

Food manager thumbnail
The other day, I found myself putting on some weight. This rather surprised me as I thought I was having a healthy diet and exercised almost daily. To identify the root of the problem, I decided to start measuring my calorie intake as well as the macronutrients that constitute said intake.
WIPMongooseWebMongoDBNode.js +1

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

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

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

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

Group management microservice

Group management microservice thumbnail
As a graph database Neo4J is a great choice to manage highly relational data. On the other side, a great number of applications feature at least some form of user management system. With Neo4J, those users can be store as nodes and connected to other items via relationships. A typical example would be a blog, where both articles and users are individual nodes while authorships are represented by a relationship.
WebNeo4JProjectsNode.jsWIP

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