DESIGNING, DEVELOPING AND TESTING A WEB SERVICE FOR SELECTING THESIS TOPICS - Oleksiichuk, Yu. F.; Olkhovsky, D. M.; Оlkhovska, O. V.; Andrushkiv, O. M. (Systems and Technologies, 2024)
The paper discusses the design, development, and testing of a web service for selecting topics for student theses. This application serves both educators and students by facilitating the creation, storage, and distribution of thesis topics among university students. REST API is an architectural style used to implement web services. It relies on simple and standardized principles, such as using standard HTTP methods to interact with resources via URIs, supporting stateless communication between clients and servers, facilitating data transmission in XML and JSON formats, and dividing responsibilities for scalability and system robustness. Utilizing REST API simplifies the development, deployment, and maintenance of web applications, enhancing their scalability and efficiency. The web service is developed using the Java programming language and uses the Spring framework, including Spring Boot, Spring Data JPA, Spring Web, and Spring Security. The project structure follows the Controller-Service-Repository design pattern, which organizes functionality into corresponding layers. The controller layer defines the external interface of the service and handles data provision to clients. The repository layer is responsible for data storage and retrieval, while the service layer contains all business logic. If the business logic requires data retrieval or storage, it interacts with the repository. Clients access the business logic by invoking classes from the controller layer. PostgreSQL is used as the data storage. Testing is a crucial component of software development. The web service will undergo unit tests to verify individual components, integration tests to examine component interaction, and API tests to ensure the functionality of the service’s API. Swagger and Postman are used for testing REST API functionality. The Testcontainers library facilitates the creation of tests using real dependencies with Docker containers, simplifying testing with real services. The web service automates the process of creating and selecting thesis topics for educators and students, respectively.