Avatao is a Hungarian IT company and its product is an online platform where software engineers can achieve practical knowledge in the subject of IT security. As a topic of my thesis I choose to modernize the frontend of the Avatao platform and create a generic client library for the Collection+JSON hypermedia type with an implementation for Angular. With my work, I aim to create a software that is easy to understand, maintain and extend. Using modern technologies and frameworks will reduce the risk of security problems and accelerate the development process. The previous version of the software makes the development hard and contains many inconsistencies, because it was written in a prototyping manner. It used the AngularJS framework which had some flaws in architecture that made it quite easy to create inconsistent code.
To tackle these problems, I needed to rewrite the frontend from scratch using the latest Angular version. By doing this I could reengineer every component with Clean Code in mind and introduce modern design patterns. I already had experience with the older version and I used that experience to create something better. The backend API uses Collection+JSON, so I built an open-source library that would make it easy to deal with such data structure. The development process needed to be redesigned as well. I started using Yarn as the package manager, TSLint for static code analysis and Angular-CLI for building the frontend.