Тема: Разработка веб-приложения платформы поиска и бронирования мест размещения
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
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) и окна в виде модала.
Итоговая система является полнофункциональным веб-приложением платформы. Она готова к дальнейшему развитию. Можно заключить, что разработанная платформа полностью соответствует целям и задачам проекта и может быть использована в качестве настоящего продукта.





