DESIGNING, DEVELOPING AND TESTING A WEB SERVICE FOR SELECTING THESIS TOPICS
Abstract
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.
References
2. Педченко, Н. С. Моніторинг розвитку кадрового потенціалу Вищого навчального закладу Укоопспілки» Полтавський університет економіки і торгівлі». Актуальні проблеми та перспективи розвитку соціально-трудових відносин в умовах цифрової економіки : матеріали ХІІ Міжнародної науково-практичної конференції. Полтава : ПУЕТ, 2021, 84-88.
3. Kopecký, J., Fremantle, P., Boakes, R. A history and future of Web APIs. it-Information Technology, 2014, 56(3), 90-97.
4. Bülthoff, F., Maleshkova, M. RESTful or RESTless–current state of today’s top web APIs. In The Semantic Web: ESWC 2014 Satellite Events: ESWC 2014 Satellite Events, Anissaras, Crete, Greece, May 25-29, 2014, Revised Selected Papers 11 (pp. 64-74). Springer International Publishing.
5. Зінченко, А. Ю. Проектування розподілених інформаційних системна основі використання технології слабозв’язаних компонентів. Системи та технології, 2023, 63 (1), 5-14. https://doi.org/10.32782/2521-6643-2022.1-63.1
6. Олексійчук, Ю. Ф., Ольховська, О. В., Ольховський, Д. М., Орлова, Д. І. Проєктування та розробка web-сервісу для генерування та розсилки pdf-документів. Системи та технології, 2023, 65(1), 39-45. https://doi.org/10.32782/2521-6643-2023.1-65.5
7. Кошова, О. П., Ольховська, О. В., Тацій, Д. С., Олексійчук, Ю. Ф., & Черненко, О. О. Розробка веб-додатків та сервісів на платформі node.js. Таврійський науковий вісник. Серія: Технічні науки, 2023, (2), 78-89.
8. Fielding, R. T. Architectural styles and the design of network-based software architectures. University of California, Irvine, 2000.
9. Neumann, A., Laranjeiro, N., & Bernardino, J. An analysis of public REST web service APIs. IEEE Transactions on Services Computing, 2018, 14(4), 957-970.
10. Chen, Y., Yang, Y., Lei, Z., Xia, M., Qi, Z. Bootstrapping automated testing for RESTful web services. In International Conference on Fundamental Approaches to Software Engineering (pp. 46-66). Cham: Springer International Publishing, 2021, March.
11. Massaga, A., Kouamou, G. E. Towards a Framework for Evaluating Technologies for Implementing Microservices Architectures. Journal of Software Engineering and Applications, 2021, 14(8), 442-453.
12. Соболєв, П. О. Автоматизована система керування дипломними роботами на кафедрі (серверна частина) (Bachelor’s thesis, КПІ ім. Ігоря Сікорського), 2021.
13. Касьяненко, І. І. iOS додаток управління педагогічними та науковими аспектами роботи кафедри (Master’s thesis, Київ), 2018.
14. Штокал, С. С. Модуль «Додатковий персонал» системи управління дипломними проектами (Bachelor’s thesis, КПІ ім. Ігоря Сікорського), 2019.
15. Walls, C. Spring in action. Simon and Schuster, 2022.
16. Drake, J. D., Worsley, J. C. Practical PostgreSQL. O’Reilly Media, Inc, 2002.
17. Provos, N., Mazieres, D. Bcrypt algorithm. In USENIX, 1999.
18. Fowler, M. Patterns of enterprise application architecture. Addison-Wesley, 2012.
19. Dos Santos, J. S., Azevedo, L. G., Soares, E. F., Thiago, R. M., da Silva, V. T. Analysis of Tools for REST Contract Specification in Swagger/OpenAPI. In ICEIS (2) (pp. 201-208), 2020.
20. Westerveld, D. API Testing and Development with Postman: A practical guide to creating, testing, and managing APIs for automated software testing. Packt Publishing Ltd, 2021.
21. Sharp, T. R. Testing the Persistence Tier with Testcontainers. In Introducing Micronaut: Build, Test, and Deploy Java Microservices on Oracle Cloud (pp. 81-88). Berkeley, CA: Apress, 2022.