Техническое задание
Тут всё написано
1. Основные страницы сайта
  • Главная
  • Продукты
  • Блог
  • Контакты
  • Вход
  • Подвал

2. Пользовательские функции
2.1 Регистрация и авторизация пользователей:
  • Возможность регистрации через email.
  • Авторизация через социальные сети (если необходимо).
  • Восстановление пароля.

2.2 Профиль владельца ключа
Описание: Владельцы ключей имеют доступ к личному кабинету, где они могут управлять своими ключами, а также редактировать личные данные (имя, email, пароль).
Управление ключами:
Раздел "Все ключи":
  • Отображение всех ключей, переданных пользователю.
  • Возможность перехода по ключам для открытия/закрытия замков.
  • Возможность установления временного интервала открытия замка
  • Статусы доступа: открыто, закрыто, нет связи
  • Отображение ключей в виде кнопок с подписями.
  • Сортировка по убыванию частоты использования

2.3 Профиль получателя ключа
Описание: Получатели ключей имеют доступ к личному кабинету, где они могут пользоваться своими ключами, а также редактировать личные данные .

Раздел "Все ключи":
  • Отображение всех ключей, переданных Получателю.
  • Статусы доступа: открыто, закрыто, нет связи
  • Возможность нажатия на кнопки ключей для открытия/закрытия замков.
  • Отображение ключей в виде кнопок с подписями.
  • Сортировка по убыванию частоты использования

3.. Система уведомлений
  • Статусы доступа
  • Передача ключа Получателю
  • Удаление ключа
4. Администрирование
  • Управление контентом (добавление, редактирование, удаление страниц и записей).
  • Управление пользователями (создание, редактирование, блокировка).
  • Управление помещениями
  • Управление ключами
Далее мы приводим более подробные описания к некоторым пунктам
2.1 Регистрация и авторизация пользователей
2.1.1 Регистрация
Описание: Пользователи могут зарегистрироваться на сайте в качестве владельцев ключей или получателей ключей. Регистрация осуществляется через форму на сайте.
Поля формы регистрации:
  • Имя пользователя (обязательное, текст)
  • Email (обязательное, текст, проверка формата)
  • Пароль (обязательное, текст, минимум 8 символов, включение проверки на сложность)
  • Подтверждение пароля (обязательное, текст, должно совпадать с полем "Пароль")
  • Тип пользователя (обязательное, выпадающий список: "Владелец ключей" или "Получатель ключей")
Процесс регистрации:
  • Пользователь заполняет форму регистрации и отправляет её.
  • Система проверяет корректность введенных данных:
-- Email должен быть уникальным.
-- Пароль и подтверждение пароля должны совпадать.
  • При успешной проверке система сохраняет данные пользователя в базе данных.
  • Пользователю отправляется письмо для подтверждения email.
  • После подтверждения email пользователь может войти в систему.
2.1.2 Авторизация
Описание: Пользователи могут авторизоваться на сайте, используя зарегистрированный email и пароль.
Функциональные требования:
  • Поля формы авторизации:
  • Email (обязательное, текст)
  • Пароль (обязательное, текст)
  • Ограничение попыток входа
  • Капча
2.1.3 Авторизация через социальные сети (опционально)
Описание: Пользователи могут авторизоваться на сайте через социальные сети (Яндекс, Мейл.ру)

2.1.4 Восстановление пароля
Описание: Пользователи могут восстановить пароль, если они его забыли.
Создание новых ключей
  1. Владелец ключа заходит в свой личный кабинет в раздел "Все ключи"
  2. Владелец нажимает кнопку "Новое помещение"
  3. Создается новое окно
  4. Владелец заполняет поля:
  • Аватарка для помещения
  • Наименование помещения
  • ID замка (номер указанный на замке)
4.. Владелец нажимает ОК
5.. Новое помещение появляется в списке
6.. Владелец получает уведомление на е-мейл
Редактирование и удаление ключа
  1. Владелец ключа заходит в свой личный кабинет в раздел "Все ключи"
  2. Владелец нажимает кнопку управления ключом
  3. Владелец нажимает поле, которое он хочет изменить.
  4. Выход из редактирования нажатием вне поля
  5. Владелец нажимает кнопку "Урна" для удаления ключа
  6. При удалении ключ не удаляется из базы данных, а помечается как удаленный
  7. При удалении ключ пропадает из списка "Все ключи" Владельца и всех Получателей
  8. При редактировании или удалении ключа все Получатели, имеющие действующие ключи, получают уведомления на е-мейл
  9. При редактировании или удалении ключа Владелец, получает уведомление на е-мейл
Передача ключа Получателю
Примерный пользовательский сценарий:
  1. Владелец ключа заходит в свой личный кабинет в раздел "Все ключи"
  2. Владелец нажимает кнопку, управления ключами от конкретного помещения
  3. Владелец нажимает кнопку "Предоставить доступ".
  4. Владелец ищет Получателя в списке
  5. Владелец добавляет Получателя в список
  6. Система открывает доступ получателя к выбранному ключу и ведет журнал данного действия.
  7. Получатель получает уведомление на е-мейл
Прекращение доступа к ключу
Примерный пользовательский сценарий:
  1. Владелец ключа заходит в свой личный кабинет в раздел "Все ключи"
  2. Владелец нажимает кнопку, управления ключами от конкретного помещения
  3. Владелец нажимает кнопку "Предоставить доступ".
  4. Владелец ищет Получателя в списке
  5. Владелец удаляет получателя из списка
  6. При удалении ключ пропадает из списка "Все ключи" у Получателя
  7. Получатель получает уведомление на е-мейл