Back
TUM: Technical University of Munich
HM: University of Applied Science Munich
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 in 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
Federated backup system (2024, 8th semester 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 in 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 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 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 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