A few of my projects

You can find more projects on my github profile

CloudRush

2023 finished

CloudRush is a two-dimensional, arcade style game which I made with a friend of mine.

In this game, you are a cloud, which can generate rain and lightnings. You're going through various cities, filled with people, flowers and street lanterns. With the rain you can water the flowers, but also make people get wet. By striking lightning on street lanterns, you can turn them on and/or off, but if you miss, you might hit and electrocute a pedestrian. During the game, there will appear various bonuses/debuffs in the sky, which can be collected to uncover their positive (or negative!) effect.

The goal is to collect as many points as possible. You get points for different actions, like watering the flowers and (deducted) points for making people wet. Actions have different weights, so you don't get the same amount of points for a different action. Those weights are also affected by the collected bonuses/debuffs, so make sure to collect those too. After the game ends, you can type in your nickname and admire your score on the leaderboard in the main menu.

Github

PokéHunt

2020 active

PokéHunt is a Pokémon Bot (Like Pokecord) That Let's It's Players to Catch, Collect, Trade & Battle While Completing Various Quests!

It all started when the biggest Pokémon bot on Discord (Pokecord) decided to shut down. After that many small Pokémon bots appeared, including PokéHunt (before: Pokecord 2.0). A few of my friends started it and later I joined. I already had made a basic Pokémon bot before and we could re-use most of the code and data.

You can choose your own starter Pokémon from each generation, from Generation Kanto all the way to Generation Galar. When typing/chatting in chat, random Pokémon will spawn and you can catch it. You need to know/guess the name, but if you don't know you can always use the hint command. Besides that, every 10 minutes you can hunt a Pokémon. This will basically give you a random Pokémon! If you want a specific Pokémon, you can search on the market and buy Pokémon from others. This way you can get unique and rare Pokémon! And if you do have a rare Pokémon, you can put it on the market for other people to buy it. You can also put it in an auction, this way other players can bid for your Pokémon. Besides that, you can always directly trade Pokémon, redeems and credits with another player.

There are also a few quests you should complete with various rewards like redeems and credits (in-game currency). And as a server owner, you have many settings you can change like the bot's prefix, which channel Pokémon should (not) spawn in and redirect all spawns into a specific channel.

With the bot I learned and experienced coding in a team and in a big project (with a lot of users). And with the bot I made previously I learned a lot about using objects and arrays in JavaScript.

Website Invite

Arduino animatronic eyes

2022 finished

A computer science project I've build with a friend of mine.

For computer science we (a friend of mine and me) had to create a project using an Arduino UNO. At first glance we thought creating animatronic eyes would be too difficult, but after some research it seemed doable.

The concept of this project is that when you walk past, the eyes should follow you. We've achieved that using the ADNS 3080 sensor, which is an optical flow sensor. The ADNS 3080 measures where there is movement, and outputs x and y coördinates. After that the Arduino calculates how much the servo's should move and sends the signal to move them.

The only downside/problem with this sensor is that when you wear dark clothes, the sensor doesn't tracks you as well as when you wear light clothes. We've tried to fix this problem by adding IR leds, however, that still didn't fix it. Other than that, it works perfectly, despite "only" having 30x30 pixels.

We decided to put the eyes in a box behind a picture of Mark Zuckerberg, to make a privacy statement. This way it looks like he's always watching you (as his eyes will follow you when you walk past him).

Github

RStorage

2021 not in active development

RStorage is an encrypted cloud file storage.

The idea of RStorage is that you have one panel, which is like the "master". This is meant to be installed on a PC, but it can be installed on a server too (but that's not recommended). You also have (multiple) nodes, which is where the encrypted files will be stored. The files will be split up into parts and all parts will be spread over all nodes. The encryption key is stored with the panel and there is no way for the nodes to decrypt the parts. It uses "military grade" AES-256 encryption.

If you upload a file, the file is sent using a stream to the panel. After that the panel cuts the stream into chunks, and sends each chunk to a worker (for multi-threading). After that the worker encrypts the chunk (using AES-256) with the key belonging to a specific node (each node has it's own unique key, which is only known to the panel) and sends the encrypted stream to the node (encrypted over TLS), which then stores it on it's disk.
For downloading it's the same process, but then reversed.
Everything is done using streams, because else you need A LOT of memory to store each file in plaintext and encrypted (or add unnecesary disk read/writes).

This project is more meant for myself and to learn from rather than to be actually used. There are many better alternatives like for example cryptomator and rclone to use encryption with cloud storage.

I learned a lot about encryption with this project. I wouldn't call myself an expert now, nor do I deeply know how it works. I know the basics and that's good enough for me. I plan on taking a deep dive into encryption later, but it's not one of my priorities right now. Besides that I also learned about using workers (multi threading) with Node.js and automated testing of Electron apps.

Github

Chattin

2020 discontinued

Chattin is a simple app which allows you to chat to other people in different rooms. If you join the same room as your friends, you are able to talk to them in that specific room.

Chattin is an app where you can talk to others with end-to-end encryption. In order to talk with someone (or multiple people), you both need to join the same group. Messages aren't stored anywhere so if you close the app all messages will be lost!

This project is more meant for myself and to learn from rather than to be actually used. There are many (better) chat apps, like for example matrix.org. Chattin requires a central server to be running, which I shut down, so you can't use it (anymore)

With Chattin I learned a lot about using Electron to make desktop apps. I also learned a lot about websockets (socket.io).

Github Download