Please use this identifier to cite or link to this item:
http://elartu.tntu.edu.ua/handle/lib/49028
Title: | Розробка веб-месенджера у реальному часі з використанням Node.js, Typescript та MongoDB |
Other Titles: | Development of a real-time web messenger using Node.js, TypeScript, and MongoDB |
Authors: | Бурда, Олександр Богданович Burda, Oleksandr |
Affiliation: | ТНТУ ім. І. Пулюя, Факультет комп’ютерно-інформаційних систем і програмної інженерії, Кафедра програмної інженерії, м. Тернопіль, Україна |
Bibliographic description (Ukraine): | Бурда О.Б. Розробка веб-месенджера у реальному часі з використанням Node.js, Typescript та MongoDB : робота на здобуття кваліфікаційного ступеня бакалавра : спец. 121 - інженерія програмного забезпечення / наук. кер. І. Я. Мудрик. Тернопіль : Тернопільський національний технічний університет імені Івана Пулюя, 2025. 65 с. |
Issue Date: | Jun-2025 |
Submitted date: | 9-Jun-2025 |
Date of entry: | 24-Jun-2025 |
Publisher: | Тернопільський національний технічний університет імені Івана Пулюя |
Country (code): | UA |
Place of the edition/event: | ТНТУ ім. І.Пулюя, ФІС, м. Тернопіль, Україна |
Supervisor: | Мудрик, Іван Ярославович |
Committee members: | Марценко, Сергій Володимирович |
UDC: | 004.9 |
Keywords: | архітектура програмного забезпечення веб-месенджер вебсокети монорепозиторій Node.js Prisma React Redis tRPC TypeScript software architecture web messenger WebSockets monorepo |
Number of pages: | 65 |
Abstract: | Метою роботи є дослідження сучасних архітектурних патернів, проектування та розробка високопродуктивної програмної системи для комунікації в реальному часі. Методи розробки базуються на застосуванні монорепозиторної архітектури, мови програмування TypeScript, платформи Node.js та бібліотеки React. Взаємодія між клієнтом та сервером реалізована за допомогою фреймворку tRPC, а комунікація в реальному часі забезпечується через Вебсокети у поєднанні з брокером повідомлень Redis. В результаті роботи було розроблено програмну реалізацію веб-месенджера, що представляє собою клієнт-серверний додаток з наскрізною типізацією. Система включає серверну частину на Node.js з API на базі tRPC, клієнтську частину на React та декаплінговану архітектуру реального часу, що використовує Redis Pub/Sub. The objective of the thesis is the investigation of modern architectural patterns, and the design and development of a high-performance software system for real-time communication. The development methods are based on the use of a monorepo architecture, the TypeScript programming language, the Node.js platform, and the React library. Client-server interaction is implemented using the tRPC framework, while real-time communication is ensured via WebSockets combined with the Redis message broker. As a result of the work, a software implementation of a web messenger was developed, which is a client-server application with end-to-end type safety. The system includes a Node.js backend with a tRPC-based API, a React frontend, and a decoupled real-time architecture that utilizes Redis Pub/Sub. |
Content: | ВСТУП 8 1 ОГЛЯД ПРЕДМЕТНОЇ ОБЛАСТІ ВЕБ-МЕСЕНДЖЕРІВ 10 1.1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ВЕБ-МЕСЕНДЖЕРІВ 10 1.2 ФОРМУВАННЯ ВИМОГ ДО ВЕБ-МЕСЕНДЖЕРА ДЛЯ КОМУНІКАЦІЇ В РЕАЛЬНОМУ ЧАСІ 11 1.3 ОПИС ВАРІАНТІВ ВИКОРИСТАННЯ ВЕБ-МЕСЕНДЖЕРА 12 1.4 ВИБІР ТЕХНОЛОГІЙ РОЗРОБКИ СИСТЕМИ 14 2 ПРОЕКТУВАННЯ ТА РОЗРОБКА ВЕБ-МЕСЕНДЖЕРА 16 2.1 ПРОЕКТУВАННЯ БАЗИ ДАНИХ 16 2.2 МОДЕЛЮВАННЯ АРХІТЕКТУРИ СИСТЕМИ 31 2.3 РОЗРОБКА СЕРВЕРНОЇ ЧАСТИНИ 36 2.4 РОЗРОБКА КЛІЄНТСЬКОЇ ЧАСТИНИ 40 2.5 ТЕСТУВАННЯ СИСТЕМИ 43 3 БЕЗПЕКА ЖИТТЄДІЯЛЬНОСТІ ТА ОСНОВИ ОХОРОНИ ПРАЦІ 49 3.1 ФІЗІОЛОГІЧНИЙ ВПЛИВ ФАКТОРІВ ІСНУВАННЯ НА ЖИТТЄДІЯЛЬНІСТЬ ЛЮДИНИ 49 3.2 ПІДБИРАННЯ ОПТИМАЛЬНИХ ПАРАМЕТРІВ МІКРОКЛІМАТУ НА РОБОЧИХ МІСЦЯХ 51 ВИСНОВКИ 54 ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ 56 ДОДАТКИ 58 ДОДАТОК А – ТЕЗИ КОНФЕРЕНЦІЇ 59 ДОДАТОК Б – ЛІСТИНГ ФУНКЦІЇ “WITHRATELIMIT” ДЛЯ ОБМЕЖЕННЯ ЧАСТОТИ ЗАПИТІВ 62 ДОДАТОК В – ДИСК З РОБОТОЮ 65 |
URI: | http://elartu.tntu.edu.ua/handle/lib/49028 |
Copyright owner: | © Бурда Олександр Богданович, 2025 |
References (Ukraine): | 1. Martin R. C. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall, 2017. 432 с. 2. Potvin R., Levenberg J. Why Google Stores Billions of Lines of Code in a Single Repository. Communications of the ACM. 2016. Vol. 59, No. 7. С. 78–87. 3. Node.js Foundation. Node.js Documentation. [Електронний ресурс]. URL: https://nodejs.org/en/docs/. 4. Meta Platforms, Inc. React Official Documentation. [Електронний ресурс]. URL: https://react.dev/. 5. tRPC Team. tRPC: End-to-end typesafe APIs made easy. [Електронний ресурс]. URL: https://trpc.io/. 6. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994. 395 с. 7. Petryk, M.R., Boyko, I.V., Khimich, O.M. et al. High-Performance Supercomputer Technologies of Simulation and Identification of Nanoporous Systems with Feedback for n-Component Competitive Adsorption. Cybern Syst Anal 57, 316–328 (2021). https://doi.org/10.1007/s10559-021-00357-7. 8. Redis. Redis Pub/Sub. [Електронний ресурс]. URL: https://redis.io/docs/manual/pubsub/. 9. Google Cloud. Rate limiting strategies and techniques. [Електронний ресурс]. URL: https://cloud.google.com/architecture/rate-limiting-strategies-techniques. 10. Jest. Jest: Delightful JavaScript Testing. [Електронний ресурс]. URL: https://jestjs.io/. 11. Richards M., Ford N. Fundamentals of Software Architecture: An Engineering Approach. O’Reilly Media, 2020. 12. Bittner K., Spence I. Use Case Modeling. Addison-Wesley, 2003. 13. Banks A., Porcello E. Learning React: Modern Patterns for Developing React Apps. O’Reilly Media, 2020. 14. Bradshaw S., Brazil E., Chodorow K. MongoDB: The Definitive Guide: Powerful and Scalable Data Storage. O’Reilly Media, 2020. 15. Grigorik I. High Performance Browser Networking. O’Reilly Media, 2013. 16. Курс «Безпека життєдіяльності та основи охорони праці» [Електронний ресурс] / Електронне навчання ТНТУ. – 2025. – Режим доступу: https://dl.tntu.edu.ua/index.php. 17. Закон України «Про охорону праці» від 14.10.1992 № 2694-XII [Електронний ресурс] / Верховна Рада України. – 2025. – Режим доступу: https://zakon.rada.gov.ua/laws/show/2694-12. 18. Безпека життєдіяльності : навчальний посібник [Електронний ресурс] / Т.Є. Стиценко, Г. В. Пронюк, Н. М. Сердюк, І. І. Хондак. – Харків : ХНУРЕ, 2018. – С. 8-15, 27-43, 96-114, 130-136, 231-238, 243-252, 275-284, 295-301. – Режим доступу: https://os.nure.ua/wp-content/uploads/2021/04/posibnik-bgd_2018.pdf. 19. Дистанційний курс «Кваліфікаційні роботи бакалаврів» сайту дистанційного навчання ТНТУ [Електронний ресурс]. – Режим доступу: URL: https://dl.tntu.edu.ua/bounce.php?course=5329. 20. Методичні вказівки до виконання дипломної роботи освітнього рівня - бакалавр студентами усіх форм навчання для напряму підготовки 121 – Інженерія програмного забезпечення/ Укладачі : Петрик М.Р., Михалик Д.М., Кінах Я.І., Гладьо С.В., Цуприк Г.Б. – Тернопіль : Вид-во ТНТУ імені Івана Пулюя, 2016 – 28 с. 21. Репозиторій GitHub [Електронний ресурс]. – 2025. – Режим доступу до ресурсу: https://github.com/Kanenil/realtime-chat. |
Content type: | Bachelor Thesis |
Appears in Collections: | 121 — Інженерія програмного забезпечення (бакалаври) |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
dyplom_Burda_2025.pdf | 2,83 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Admin Tools