Modernizing an online learning platform with hypermedia foundations

OData support
Supervisor:
Dr. Forstner Bertalan
Department of Automation and Applied Informatics

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.

The new frontend boosted the development process, by eliminating tedious manual work and helped the team to be more agile, because changes require less time and effort. The shift from Javascript to TypeScript lowered debugging time. Automating cache busting and code linting lowered the risk of bugs.

Downloads

Please sign in to download the files of this thesis.