Тип работы:
Предмет:
Язык работы:


Разработка веб-приложения платформы поиска и бронирования мест размещения

Работа №186620

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы68
Год сдачи2025
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
17
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
1 Изучение предметной области 4
1.1 Определение проблем и решений 4
1.2 Основные функции 6
1.3 Анализ аналогов 7
1.4 Описание предметной области 9
2 Определение требований к приложению 11
2.1 Функциональные требования 11
2.2 Нефункциональные требования 11
3 Проектирование приложения 12
3.1 Варианты использования 12
3.2 Модель базы данных 15
3.3 Функция поиска и фильтрации 21
3.4 Архитектура приложения и технологии 23
3.4.1 Архитектура приложения 23
3.4.2 Бэкенд 25
3.4.3 Сервис уведомлений 28
3.4.4 Фронтенд 29
4 Разработка и реализация приложения 32
4.1 База данных (PostgreSQL) 32
4.2 Разработка бэкенда 35
4.2.1 Фукнция поиска и фильтрации 35
4.2.2 GraphQL 40
4.3 Сервис уведомлений 44
4.4 Фронтенд 48
ЗАКЛЮЧЕНИЕ 64
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 66


В последние годы рынок аренды активно развивается. Все больше людей и предприятий ищут удобные способы аренды помещений — для жизни, работы, отдыха или бизнеса. Это создает высокий спрос на современные платформы поиска и бронирования. Из-за этого растет спрос на платформу поиска и бронирования мест размещения - моя задача.
Разрабатываемое приложение предоставляет отдельные интерфейсы для двух типов пользователей: арендаторов и арендодателей.
Для арендаторов приложение предлагает удобный поиск с фильтрацией по ключевым параметрам: типу помещения, стоимости, расположению и другим критериям. Пользователи могут легко бронировать подходящие варианты, просматривать активные бронирования и при необходимости отменять их.
Для арендаторов приложение предлагает инструмент для управления своими помещениями: добавление новых объектов, настройка условий аренды, просмотр и обработка входящих бронирований.
Платформа поддерживает и различные типы места размещения и различные типы периода аренды - почасовой, посуточный и долгосрочный. Приложение отправляет пользователям уведомления в виде электронных писем на почту через протокол SMTP при всех изменениях статуса их бронирований.
Теоретическая значимость работы заключается в систематизации подходов к проектированию микросервисных веб-приложений на стеке технологий React, NestJS, TypeORM, GraphQL, Go, gRPC. Практическая значимость заключается в создании готового прототипа платформы. Эта платформа может быть адаптирована под реальные задачи аренды, масштабирована и расширена для коммерческого использования. Практические аспекты тестировались на примерах, реализованных в рамках проекта.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В данной работы была успешно реализована веб-платформа для поиска и бронирования мест размещения на основе микросервисной архитектуры. В процессе разработки были решены все поставленные задачи и удовлетворили всем требованиям.
Арендаторы могут выполнять поиск по различным параметрам (местоположение, тип аренды, период, дополнительные условия и фильтры), просматривать места размещения с детальной информацией и оформлять бронирования. При успешного формлении бронирования арендатор получает электронные уведомления о текущем состоянием бронирования. В личном кабинете арендатор может отслеживать свои бронирования и их отменять, также обновлять информацию о гостях.
Арендодатели могут добавлять новые места размещения через форму, установить условия бронирования с помошью атрибутов . Атрибуты представляют услуги платные, так и бесплатные. Арендодатель может обновлять места размещения в таблице управения местами размещения, в которой каждая строка представляет один объект места размещения. На каждой строке доступны кнопки для редактирования, обновления, установки фотографиями и атрибутами.
В личном кабинет обеих ролей пользователей доступен инструмент управления бронированиями: бронирования группируемые по состоянию — в очереди, активные и завершённые. Арендодатель может принять или отклонить бронирование в очереди, завершить или отменить уже подтверждённую аренду. Все действия сопровождаются уведомлениями, которые отправляются соответствующим пользователям с помощью отдельного сервиса уведомлений.
Сервис уведомлений, реализованный независимым сервисом на стороне бэкенда, принимает запросы от GraphQL-сервера в формате gRPC и запросит SMTP-сервером Google для раздачи писем. Это обеспечивает высокую степень изоляции и гибкость в расширении системы уведомлений. Этот сервис позволяет использовать шаблоны писем для различных событий.
Фронтенд-приложение реализовано с использованием современных библиотек и компонентов, включая библиотеку ' shadcn/ui'. Эта библиотека позволила создать простой и удобный интерфейс. Большое внимание уделено пользовательскому опыту: клиентская валидация форм, поддержка бесконечной прокрутки (infinite scroll) и окна в виде модала.
Итоговая система является полнофункциональным веб-приложением платформы. Она готова к дальнейшему развитию. Можно заключить, что разработанная платформа полностью соответствует целям и задачам проекта и может быть использована в качестве настоящего продукта.



1. Моисеев А.Н., Литовченко М.И. Основы языка UML : учебное пособие / А.Н. Моисеев, М.И. Литовченко. — Томск : Издательство Томского государственного университета, 2023. — 96 с. — ISBN 978-5-907572-06-5.
2. Облачная терминология: сети и доставка контента - gRPC // Yandex Cloud. - URL: https://yandex.doud/ru/docs/glossary/grpc (дата обращения: 18.05.2025).
3. Dominik Liebler. DesignPatternsPHP: Дополнительно -Сущность-
Атрибут-Значение / Dominik Liebler // DesignPatternsPHP. - URL:
https://designpatternsphp.readthedocs.io/ru/latest (дата обращения: 18.05.2024).
4. Шпаргалка по Zustand // MyJavaScript. - URL: https://my-
js.org/docs/cheatsheet/zustand/ (дата обращения: 20.05.2025).
5. Краткий обзор хуков // React. - URL:
https://ru.legacy.reactjs.org/docs/hooks-overview.html (дата обращения:
19.05.2025).
6. React Router: что это и как использовать // Tproger - всё
программировании. - URL: https://tproger.ru/articles/react-router (дата
обращения: 19.05.2025).
7. Компоненты и пропсы // React. - URL:
https://ru.legacy.reactjs.org/docs/components-and-props.html (дата обращения: 19.05.2025).
8. Валерий Каменских. Создание REST API с NestJS и TypeORM / Валерий Каменских // Хабр. - URL: https://habr.com/ru/articles/870988/ (дата обращения: 20.05.2025).
9. Документация // Day.js. - URL: https://day.js.org/ru-RU/ (дата обращения: 20.05.2025).
10. Что такое GraphQL // Хабр. - URL: https://habr.com/ru/articles/765064/ (дата обращения: 20.05.2025).
11. Chris Tozzi. Статья на английском языке: Why and how to manage microservices without API gateways / Chris Tozzi // TechTarget, 2024. - URL: https://www.techtarget.com/searchapparchitecture/tip/Why-and-how-to-manage- microservices-without-API-gateways (дата обращения: 20.05.2025).
12. Андрей Салита. Статья: Что такое почтовый сервер и как он
работает / Андрей Салита // Академия Selectel, 2023. - URL:
https://selectel.ru/blog/what-is-smtp/ (дата обращения: 20.05.2025).
13. TypeScript Documentation // TypeScript. - URL:
https://www.typescriptlang.org/docs/ (дата обращения: 20.05.2025).
14. Микросервисы (Microservices) // Хабр. - URL:
https://habr.com/ru/articles/249183/ (дата обращения: 20.05.2025).
15. Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication // GitHub Gist. - URL: https://gist.github.com/zmts/802dc9c3510d79fd40f9dc38a12bccfc/339778999d35a 9c81f115a3755ea3035681f2702 (дата обращения: 21.05.2025).



Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ