Information Technology is developing rapidly and gaining more and more space of our lives, as the rate of people who has access to the web, or mobile application is growing. The consequence is the fact, that the demand for making apps, and websites is also growing, it is common for a small business to have their own website, or an even to have its own application. These all need data to show something to their users. This data has to be updated daily in lot of situations, and it needs to be easily manageable, without any specific knowledge in IT. In addition, if we want to have a new look to showcase this information, or want to start on a new platform, it should not require to rewrite the whole system. In order to fulfil these needs the Content Management Systems (CMS) were born.
In my thesis work I will develop a Headless CMS application, which will be able to provide data for multiple clients. The Headless means, that it is completely detached from the UI, and the only purpose is to provide raw data, that can be transformed, and displayed for the end user. Thanks to it this system can work on multiple platforms in the same time, and changes in the UI, or in the front-end application have no effect on the CMS application. With the use of a system like this, anyone can manage their applications own data, without knowing anything about Databases, and REST APIs.
The goal is to develop an application with which the users can create their own data types, so it can be managed easily, and then store the data in a Database, so it can be served for multiple clients. In addition, a web application is also required to that system, so that user can interact with their data through a User-friendly interface. The data that comes back from the server can be in multiple formats, thanks to its wide range of support in query parameters. There is still room for improvements, for example more granular data access restriction from the UI, and also the support for storing and serving files, and showing statistics on the admin site. A nice improvement would also be to support multiple languages in the data that is stored.