2. Спецификация - pipichaan/Housing-Booking-System GitHub Wiki

1. Введение

Настоящая спецификация описывает требования к системе бронирования жилья (Housing Booking System), разрабатываемой на платформе .NET с использованием WinForms. Программа предназначена для автоматизации поиска, бронирования и управления арендой квартир и домов.

2. Цели

  • Создать удобный инструмент для поиска и бронирования жилья.
  • Обеспечить безопасную авторизацию пользователей.
  • Реализовать систему отзывов и рейтингов.
  • Интегрировать картографические сервисы для удобного выбора местоположения.
  • Автоматизировать процесс бронирования и уведомлений.

3. Соглашение о терминах

Термин Определение
Пользователь Физическое лицо, осуществляющее поиск и бронирование жилья в системе
Владелец Физическое или юридическое лицо, размещающее объект недвижимости в системе
Администратор Специалист, осуществляющий управление системой и модерацию контента
Бронирование Договоренность о временной аренде жилья на конкретные даты
Google Maps API Веб-сервис для интеграции картографических данных и отображения объектов

4. Предполагаемая аудитория и последовательность восприятия

Целевая аудитория:

  • Арендаторы – туристы, командировочные, студенты.
  • Владельцы жилья – частные лица, агентства недвижимости.

Классы и характеристики пользователей:

Роль Описание
Гость Может просматривать доступное жильё, но не может совершать бронирование
Пользователь Может бронировать жильё и оставлять отзывы после проживания
Владелец Может добавлять объекты недвижимости и управлять их бронированиями

Последовательность восприятия: Регистрация/авторизация → 2. Поиск жилья → 3. Бронирование → 4. Оплата → 5. Отзыв.

5. Масштаб проекта

  • Фронтенд: WinForms (C#)
  • Бэкенд: .NET Core, Entity Framework
  • База данных: MS SQL Server
  • Внешние API: Google Maps, VK OAuth

6. Ссылки на источники

  • Google Maps API Documentation
  • VK API Documentation
  • Microsoft .NET Core Documentation
  • MS SQL Server Official Guides

7. Общее описание

Система позволяет:

  • Искать жилье по параметрам (цена, местоположение, удобства).
  • Бронировать на выбранные даты.
  • Оставлять отзывы и оценки.
  • Управлять объектами недвижимости (для владельцев).

8. Видение продукта

Конечный продукт – десктоп-приложение для Windows с возможностью расширения до веб-версии.

Основные преимущества:

  • Удобный интерфейс.
  • Интеграция с картами.
  • Гибкая система фильтрации.

9. Функциональность продукта

Основные функции:

  • Поиск и бронирование жилья
  • Управление профилями пользователей
  • Система отзывов и рейтингов
  • Интеграция с Google Maps

Дополнительные функции:

  • Уведомления по email
  • История бронирований

10. Среда функционирования продукта

  • ОС: Windows 10/11
  • СУБД: MS SQL Server 2019+
  • Фреймворк: .NET 6.0+
  • Дополнительно: Интернет-соединение для работы с API

11. Рамки, ограничения, правила и стандарты

Ограничения:

  • Макс. размер загружаемых фото – 5 МБ.
  • Минимальная длина пароля – 6 символов.

Стандарты:

  • Использование REST API для внешних сервисов.
  • Соблюдение GDPR при работе с персональными данными.

12. Документация для пользователей

  • Руководство пользователя (PDF).
  • FAQ по часто возникающим вопросам.

13. Функциональность системы

Основные модули:

  • Аутентификация (регистрация, вход).
  • Поиск и бронирование (фильтры, календарь, подтверждение).
  • Управление объектами (добавление, редактирование, удаление).
  • Отзывы и рейтинги (добавление, модерация, расчет среднего балла).

14. Причинно-следственные связи, алгоритмы

Workflow бронирования:

Пользователь выбирает даты → 2. Система проверяет доступность → 3. Подтверждение → 4. Уведомление владельцу.

Workflow добавления отзыва:

Пользователь бронирует жилье → 2. После выезда оставляет отзыв → 3. Система обновляет рейтинг.

15. Требования к программному продукту

Функциональные требования:

  1. Модуль авторизации и регистрации
  • Регистрация по email и паролю
  • Авторизация через ВКонтакте
  • Восстановление пароля
  • Редактирование профиля пользователя
  1. Модуль управления объектами недвижимости
  • Добавление/редактирование/удаление объектов
  • Загрузка фотографий объекта
  • Указание местоположения на карте
  • Управление параметрами объекта (цена, описание и т.д.)
  1. Модуль поиска и фильтрации
  • Поиск по местоположению
  • Фильтрация по цене, типу жилья, удобствам
  • Сортировка результатов
  • Постраничный вывод результатов
  1. Модуль бронирования
  • Выбор дат бронирования
  • Расчет стоимости
  • Подтверждение брони
  • История бронирований
  1. Модуль отзывов и рейтингов
  • Добавление отзывов
  • Система оценок (1-5 звезд)
  • Просмотр отзывов других пользователей
  • Расчет среднего рейтинга

Требования к внешним интерфейсам:

Пользовательский интерфейс:

  • WinForms (адаптивный дизайн).
  • Минималистичный и интуитивный.

Программные интерфейсы:

  • Google Maps API (отображение карт).
  • VK API (авторизация через ВКонтакте).

Нефункциональные требования:

  1. Требования к интерфейсу
  • Интуитивно понятный графический интерфейс
  • Адаптивный дизайн
  • Поддержка разрешений от 1024x768
  • Локализация на русский язык
  1. Требования к надежности
  • Валидация всех вводимых данных
  • Обработка ошибок ввода
  • Резервное копирование базы данных
  • Журналирование критических операций
  1. Требования к безопасности
  • Хранение паролей в хэшированном виде
  • Защита от SQL-инъекций
  • Ограничение доступа к административным функциям
  1. Требования к совместимости
  • ОС: Windows 10 и выше
  • .NET Framework 4.7.2 или .NET Core 3.1+
  • СУБД: MS SQL Server 2016 или выше
  1. Требования к производительности
  • Время отклика на основные операции не более 2 сек
  • Поддержка одновременной работы 50+ пользователей
  • Оптимизация работы с изображениями