The amount of information stored on computers grows rapidly every year, so its proper management and transformation into controllable, searchable and relevant content is an important task for today's modern and digital world. Some of the most prominent characteristics of well-known content management systems are support for customization of data models, searchability, extensibility and flexible workflows.
The primary topic of my thesis was to develop the administration interface and functionality of a new web content management system for a specific use-case. The main requirements of the system were support for dynamic data modeling and categorization, full text search and handling of media files. In addition, I had to ensure proper user experience and archivability of the stored data.
In my thesis first I present the theoretical review related to the development. After describing the main characteristics of web content management systems, I make a shorter mention of related systems used in enterprises. Next my research about metadata management is detailed, which proved to be certainly useful at the planning of data models. For demonstration purposes, I also show examples of some of the most widespread metadata standards in this chapter. Afterwards, the important aspects, functional principles and techniques of full text search engines are described. Finally, a comparison of a few well-known content management systems is presented, mainly based on the requirements of the developed system.
In the next chapter the technologies used in the development are introduced: the Firebase software development platform and its Cloud Firebase database, the Angular client-side framework and the libraries connected to it, the Node.JS server-side framework and the Elasticsearch engine. After getting familiar with these technologies, I planned the architecture of the system, the data models stored in the database and the way the main components will cooperate. The following parts of my thesis describe the actual development process and the implementation details. Finally, I present the technologies used for the system's unit- and functional tests and their results.