Back
TUM: Technical University of Munich
HM: University of Applied Science Munich
The project was to create a website where universities in Bavaria can upload their GreenHouseHas (GHG) reports, analyze them, and, if wanted, make them public for anyone to see the data.
Our team was composed of computer science and business administration students. The B.A. students researched what the users and client really want from the website. Meanwhile we C.S. students first looked at the state of the project from the previous group and then decided on starting from scratch after seeing the big technical debt and non-existent documentation.
At the end of the semester we managed to build a working system using Rust as a backend, Next.js as a frontend and Metabase for an easy way to create graphs. It was then deployed using Docker containers in Kubernetes. We also did a full ARC42 documentation for the project so that future groups can easily work on the project.
We decided to create a federated backup system from scratch. We named our system "Sicherungskammer Bayern" (or SKB), making reference to "Versicherungskammer Bayern", a german insurance company.
We designed our own REST-API for the different interfaces and also build a CLI client in Rust. The server was build using Java and the quarkus library.
After finishing our assignment, we put our code on GitHub so that students in the next year may expand our project since we didn't finish everything we planned.
Our part in the project consisted in building the website and the backend in AWS and find a good architecture so that any museum can make its own escape game.
In our group we chose the game Mills.
In the end, we went further then necessary and also added a bot which the player (or another bot) could play against. Required was only a dumb bot that makes moves at random but we also added a bot that used the Min-Max-Algorithm with Alpha-Beta-Pruning to make it intelligent. We also did machine learning training to have better scoring parameters to use during the normal bot operation.
We also did a short comedy video of our process to show at the end of the course and put it on Youtube
The program consisted of multiple parts:
University Projects
Here is a list some of my university software projects that I did. The source code to those is not public.TUM: Technical University of Munich
HM: University of Applied Science Munich
Puzzle solving with a robot (2025, 2nd semester M.Sc. HM)
In our robotics project lecture, we got the task to create a system that first scans pieces of a puzzle, then calculates a solution for that puzzle to finally 3D animate a robot arm moving the pieces to make a solved puzzle.BayCalc 2.0 (2025, 2nd semester M.Sc. HM)
In our software engineering project lecture, we virtually worked for the fictional CIL Consulting company and there we worked on a real consulting project for BayZeN.The project was to create a website where universities in Bavaria can upload their GreenHouseHas (GHG) reports, analyze them, and, if wanted, make them public for anyone to see the data.
Our team was composed of computer science and business administration students. The B.A. students researched what the users and client really want from the website. Meanwhile we C.S. students first looked at the state of the project from the previous group and then decided on starting from scratch after seeing the big technical debt and non-existent documentation.
At the end of the semester we managed to build a working system using Rust as a backend, Next.js as a frontend and Metabase for an easy way to create graphs. It was then deployed using Docker containers in Kubernetes. We also did a full ARC42 documentation for the project so that future groups can easily work on the project.
Federated backup system (2024, 8th semester B.Sc. HM)
For the federated systems lecture, we needed to either expand an existing federated system like Mastodon or create out own from scratch.We decided to create a federated backup system from scratch. We named our system "Sicherungskammer Bayern" (or SKB), making reference to "Versicherungskammer Bayern", a german insurance company.
We designed our own REST-API for the different interfaces and also build a CLI client in Rust. The server was build using Java and the quarkus library.
After finishing our assignment, we put our code on GitHub so that students in the next year may expand our project since we didn't finish everything we planned.
re:quest by re:edu (2022, 4th semester B.Sc. HM)
In our software architecture lecture, we partnered with re:edu to create a website where virtual escape games can be made for the participants to learn things. The idea was that museums can create "quests" so that young visitors are encouraged to learn about the expositions. At the same time, a focus was made to also convey computer science skills while solving the quests.Our part in the project consisted in building the website and the backend in AWS and find a good architecture so that any museum can make its own escape game.
Mills (Nine men's morris) in Java with a SenseHat (2021, 2nd semester B.Sc. HM)
In CS2 we had to program a table-top game of our choice in Java in such a way that it is playable on a SenseHat, an 8x8 LED Matrix.In our group we chose the game Mills.
In the end, we went further then necessary and also added a bot which the player (or another bot) could play against. Required was only a dumb bot that makes moves at random but we also added a bot that used the Min-Max-Algorithm with Alpha-Beta-Pruning to make it intelligent. We also did machine learning training to have better scoring parameters to use during the normal bot operation.
We also did a short comedy video of our process to show at the end of the course and put it on Youtube
"Mini"-Java Parser and Assembler Interpreter (2017, 1st semester B.Sc. TUM)
In my first year the TUM, we had a project where we slowly build a big program that could take in a "Mini"-Java (reduced Java) program and translate it into assembler and then execute this assembler code virtually.The program consisted of multiple parts:
- A parser that takes in a string containing a "Mini"-Java program and gives the program in Java objects.
For example:int x; x = 5;would be translated into:Program ( declarations: [ Declaration ( type: Type ("int"), name: Name ("x") ) ], statements: [ AssignmentStatement ( name: Name("x"), expression: NumberExpression(5) ) ])
- A parser that takes that Java object and creates an assembler program string.
- An interpreter that takes an assembler program string and executes it using a virtual stack-machine. The stack-machine was also part of the program.