Personal projects
Below is an overview of some of my personal projects.
Anonymous voting system
(Finished: November 2020)
The regional Scouting association has to answer to the member groups, who elect and approve board
members and financial reports.
Usually voting is done on paper during a meeting with representatives. During the Corona pandemic when
physical meetings were impossible, an online alternative had to be developed.
The online voting system demanded anonymity, but only registered groups were eligible to vote. To
facilitate this, we imported an Excel sheet with contact information to the website; the Excel sheet
randomly generated tokens and sent these to the registered groups. Contact information and tokens were
stored separately in the database. Once used, a token became invalid.
To guarantee transparency, several individuals were given access to the results page, which showed the
groups authorised to vote, the number of votes cast and, of course, the results themselves.
Automated screens
(Finished: Augustus 2018)
When I moved into my current apartment, the windows were equipped with screens to break direct sunlight.
The screens were controlled by a wall-mounted manual switch. As an electrical engineering student, I
thought this would be a nice project to automate. After all, when I'm not at home, who keeps my room
cool?
The project consists of two components. One is a sensor unit placed in front of the window. It takes a
measurement every few minutes and records data such as temperature and light intensity. These
measurements are transmitted to the wall-mounted module. This module combines the sensor information
with weather reports fetched from the internet. Based on this data, the system determines if the screen
should be raised or lowered.
Of course the screen can be controlled manually as well. The button has several functions. Automation
can be enabled/disabled, the screen can be lowered/raised or stopped in any position.
The project is based on two Particle Photon modules coded in C++.
Scouts: model bombs
(Finished: April 2018)
During the period of tension between the United States and North Korea, we decided to put together a very
thematic meeting for the Scouts. Two explosive devices had been hidden at undisclosed locations. If the
correct code was entered before the timer ran out, the world would be safe once again.
The project consisted of building the bomb casings, putting together the electronics and programming the
Arduino. When powered, a code and timer duration are entered. Once the data are confirmed, the countdown
starts, along with a constant beeping and flashing of the LED. If the code is entered correctly and in
time, it will stop the countdown and disable the beeping and flashing LED. When time runs out, the
display will continuously flash and beep.
Scouts: power box
(Finished: July 2017)
When camping with the Scouts, we usually don't have any electricity. In the modern world, however, we all
want to be able to charge our mobile phones. Furthermore, in our big group tents, we usually need some
lighting.
On camping trips, we bring some big batteries to power and charge devices. To facilitate this neatly, I
built a box that monitors the battery voltage (battery protection), has numerous USB ports and four XLR
ports to which lights can be connected. Furthermore, the four light ports are controlled by an Arduino,
using buttons or the remote.
For lighting, I made my own semi-waterproof LED strips as well as some extension cords and splitters.
Scouts: Greppeltocht website
(Ongoing project)
When I organised the Greppeltocht for the first time, I spent a lot of preparation time on writing and
printing documents and sending emails. During the event, a lot of time was spent handing out forms to be
filled in by participants.
This workflow posed several problems. For example, when we needed a phone number, we had to search
through the entire pile of registration forms only to realise that the handwriting was illegible.
Furthermore, with the number of participants (around 300!) it became difficult to monitor which groups
had finished, what their score was and whether they'd obtained any bonus (or minus) points.
To simplify organising the activity, I started building the Greppeltocht website. The website takes care
of a lot of things, such as:
- Sending out invitations to registered groups
- Allows groups to register their participants
- Assigns group numbers to each participating group
- Offers the opportunity to modify groups until one day before the event
- Automatically generates admission tickets
- Keeps track of score
- Registers whether or not a group has been to checkpoints
- Registers the number of times a group has been sighted
- Logs the location of groups
To register checkpoints and sightings, each group receives a badge (matching their group number) with two
QR codes. When the codes are scanned, the website determines the group’s current location and either
registers a sighting and deduct points or, if applicable, registers the group at the checkpoint.
Moreover, the system offers several comprehensive overviews to keep track of all groups and gives quick
access to contact information.
The project is currently built with HTML, Bootstrap, PHP, JavaScript, MySQL and AJAX. Over the past few
years I have been working on improving or even completely rewriting different modules based on input,
known bugs and personal wishes.
Scouts: Jotihunt website & Telegram bot
(Ongoing project)
The Jotihunt is one of my favourite activities offered to 18+ Scouts. Each year in October, my home
province is divided into six sub-areas. Each sub-area has a group of "foxes" walking between the
participating groups. After 15 hours, a new group of foxes takes over and walks for another 15 hours.
The main objective of the Jotihunt is to find the foxes. Every hour you can obtain a code and submit it
to gain points. To help find the foxes, hourly puzzles are sent to the groups. When solved, the puzzles
will disclose the last known coordinates of the teams. This of course means there is a lot of data to be
collected! To do so, I started developing a website and an accompanying Telegram bot.
Displaying the collected data, helps predict where the fox teams will go next. To display the data
conveniently, all kinds of filters can be applied to the data.
Solved puzzles result into coordinates in "Rijksdriehoeksstelsel", which is unique to the Netherlands.
However, the stored coordinates need to be in WGS format. Therefore, coordinates are automatically
converted and displayed in the preview window. If the locations seem correct, the coordinates can be
stored.
To accompany the website, I programmed a Telegram bot. Once authenticated, users receive updates fetched
from the central organisation. Moreover, if you're out looking for a fox team, you can register your
car. When new coordinates are entered into the system, the bot will automatically inform the cars. When
you find a fox team, you can send in the code through the bot. Furthermore, the bot also allows some
settings to be changed, timers to be set and personal preferences to be changed.
The Jotihunt website and bot constitute one of my ongoing projects. For the last few years, I have been
improving and even completely recoding components. The bot is currently fully programmed in PHP and
works with direct calls and automates scripts to fetch data from the central organisation. The website
is built with HTML, Bootstrap, PHP, JavaScript, MySQL and AJAX.
Airborne Battlefield Tour app
(Finished: September 2014)
In the final year of secondary school, everyone has to do a school research project. Together with a
fellow classmate and a school history teacher, I developed an app that took students past several
landmarks related to the Second World War. At every landmark, the app presented video material and
information about past events. After watching the video, students were instructed to complete an
assignment by taking certain pictures. When the assignment had been completed, the app would show the
route to the next landmark.
The app was built in Lua and compiled for Android tablets. In the project I was responsible for
programming all of the data and editing all of the videos.
The app was used for several consecutive years by my school.