Abstract:
This work is dedicated to describing the development process of a full-stack application. The developed system is created for a special business field, charities. Charity organizations differ from other companies due to their specific objectives. Some particularly different properties and features are described in detail in this work. We have conducted a research on this business field. Two well-known charity organizations’ websites were analyzed. For us it was important to notice and understand which components of their webpages function properly, and which are not. Which features of the websites could be improved, and which should be removed. A further goal was to implement the RESTful web service. This architecture encourages the high performance, scalability, and reusability of the system. It is gaining the popularity in the web applications’ development. In fact, it has become a standard for building web systems. Java and Spring promotes convenient and expedient implementation of the given architecture. We have used the Spring API for development of our application. In this work, we have looked into some other technologies, as well. They are described and discussed in detail in further chapters. Other intriguing aspect of the system is the front-end of the service. Generally, the web pages are created with the help of HTML, JavaScript, and PHP. For our application we have used the Angular framework, which operates on TypeScript. It is our first experience of developing a web application using Angular. The third and final part of the web service is the headless CMS. We have decided to explore the features of existing headless content management systems. Moreover, we have connected the front-end of our application to the API of the CMS. In this scenario, the web service functions without the RESTful server being enabled. Naturally, the available functionality is very limited, although the webpage still operates. We were peculiar about dividing the functionalities in such way, that it is convenient to users. Basically, the essential functionality – like update or create post from content-creators’ point of view; or read posts for the consumers’ side – is delivered by the headless CMS. On the other hand, the registered users are handled by the secured RESTful web service. This project can be called experimental in some way. We have divided the functionality of a system among its components. This approach encourages reusable elements and more convenient updates on features. More functionalities can be added without breaking the already existing ones. The system supports further development. Despite separation of the functionalities, the web service is perceived as one complete system by its end-users.