Master’s thesis

Multi-criteria comparative analysis of package managers used for open source software distribution.

I devoted my master’s thesis entirely to the issue of containerized package managers on Linux systems. As part of the work, I prepared a Qt GUI application in Python, which I prepared as Flatpak and Snap packages. I then published this application in SnapCraft and Flathub.

First of all, I focused on comparing the principles of both managers (that is, Snap and Flatpak), as well as on the process of creating packages and publishing them. In addition, I also made performance measurements. I summarized part of my master’s thesis and published it as a scientific article in the JCSI journal. The article is available to the public here.

ServerCommander

ServerCommander is an mobile application made for Android. It is free and open source with code available at GitHub. An App helps manage self-hosted homelab. The mobile client application is a great tool that allows you to manage your server quickly, conveniently, and almost anytime. It is compatible with Debian servers with Docker and/or YunoHost environment.

We can be proud of the fact that just a couple of days after the publication of the application, this one gained the fifth place on the “Bestsellers” list in the “Tools” category in Google Play Store.

Server Commander

ServerCommander can be found here:

Hire babysitter system

Hire Babysitter System is my engineering thesis. It is written in PHP and Laravel. It also uses MariaDB database system and Bootstrap. It was deployed with Docker. This thesis was graded A.

My homelab

I love self-hosting. I started with not very powerful SBC Raspberry Pi3B+. It wasn’t really fast but it helped me to understand how networking works. I also had VPS with NextCloud instance. So I upgraded to better hardware with AMD64 processor (Mini PC) and I migrated all my services. I use a lot of cool open source projects like Nextcloud, HedgeDoc, Home Assistant and Wallabag. Also this webiste runs on this hardware (you can learn from How it Works).

This is how my home network looks like: Home network

I then moved to newer hardware - an AsRock X300 Mini with a Ryzen 7 5700G processor and 32GB of RAM. I upgraded the storage and added redundancy for better security. I now use Scaleway S3 bucket for external backup of my data. Finally, I am using a much better ASUS router with OpenWRT, which is very good in terms of security. I have also started using DigitalOcean VPS with Uptime Kuma to check the health of my services. If something fails, I am immediately notified using Telegram Bot.

I use YunoHost environment on stable Debian 11. I really love using YunoHost and my next two projects are related to it. I am also trying to learn self-hosting with Docker but I don’t see this that easy and straight-forward like it is with YunoHost. But Docker is more powerful and gives more control.

Personal backup script

It is my personal backup script in Bash that uses YunoHost commands. It backups my self-hosted apps every two days. It is open source and available at GitHub.

To run this script, I use cron. This is how command looks like:

0 3 * * 2,4,6 bash <script_path>/yh-backup/main.sh

As You can see, script works really well. This is list of my backups created with this script:

List of Backup screenshot

  • Check yh-backup repository here

Netflix like database

It was my university project. It is complete database project for service like Netflix. SQL code is optimized for PostgreSQL. Project was graded A.

Entity Relationship diagram of this database:

Netflix ERD

  • Check Netflix_database repository here

Sunspot analysis

It was my university project. It is Jupyter notebook with analysis about sunspot. Code is written in Python. Project was graded A.

  • Check sunspot-analysis repository here

You can see more of my projects here.