Hate to website engineering
At the first glims of what I heard and saw about websites was that it is boring and not useful. This changed when I worked at a company for wireless sensor networks. I notice the usefulness of a sensor database and a few simple javascript plugins to show the status of those sensors.
Light system
When writing this section, it has been 4 years ago, when I started with my enable-from-everywhere Smarthome light project.
The first application that I wrote to enable the lights was using an URL and some relay with an Arduino and ethernet-shield. The URL was as followed: http://homeip:port/write/pin_no/high
.
Very quickly, I concluded that it is not user-friendly for enabling multiple lights.
Therefore an Android app was written that had multiple versions, just for turning the lights on and off.
As there was still no security and a few friends start to play with my lights, YES I had to do security by obscurity.
What is never a good plan, but the lights were not altered after the obscurity.
After some time I added some features to remember the state of the lights, this was written in a static HTML page with bootstrap.
The idea of easy feature adding without the need of distributing the Android app makes a webpage more attractive.
Therefore the lights were enabled again from my server that hosted with docker a webpage and https.
Everyone with my correct URL (https://test.muino.nl) could play with my lights. The website is disabled for use, and some features are disabled.
Security
The website for enabling my lights had some cool features like weather planning, the status of my lights, and a the RSS-feed from a Dutch tech website Tweakers. After a while, the website had features others could also use. I was letting my lights untouched by other secure implementations needed to been done. Therefore after a few weeks of discussing with multiple experienced people for choosing a website framework, I concluded that Angular would be the most suitable framework. The main reason for choosing Angular was that it uses Typescript, and having enforced a better structure. At this moment I had secured my lights. I was using the following applications: Angular, NodeJs, MongoDB, and Redis. At the moment, the plan to convert to PostgresSQL is under construction. For the people with a security background, I use MongoDB using a public/private key setup, where my database is only accessible from my own server.
TU Delft courses
For the TU Delft there were two courses were you had to hand in your own questions on weekly based related to the lectures, and the papers you needed to read. The day before the exam hundreds of student were visiting my website.
Prikklok
Prikklok is Dutch for old time accounting system that workers used for checking in and out for their work. After a lot of ‘projects’, I wanted to know how much time I spend on a project. Therefore I wrote Prikklok system that keeps track of projects and tasks screenshot.