Модуль личного кабинета, авторизация, данные для пользователя



Здравствуйте! Спасибо за интерес к заказу.



Модуль личного кабинета, авторизация, данные для пользователя - ТЗ

Пользователь имеет возможность зайти по ссылке, ввести логин и временный или постоянный пароль.
Если текущий пароль пользователя является временным, то это отображается пользователю, не блокирует работу.
Пользователь может сменить пароль на любой, который ему удобно, кроме временного.


Должна быть возможность запомнить пользователя, чтобы облегчить последующие входы его в систему.


Модуль аудита


Должен быть реализован модуль аудита действий пользователя, в который записывается информация о:
  • входе пользователя (login)
  • выходе пользователя (если явно нажата кнопка logout)
  • смене пароля
  • смене личной информации

Модуль логирования


Должен быть реализован модуль логирования. Механизм должен позволять подключать этот модуль к функционалу, который будет добавлен позже (не жестко связан с модулем личного кабинета).


Ролевая модель и полномочия


В системе должна быть ролевая модель, предоставляющая разный уровень следующим группам пользователей:



  • Менеджер
  • Пользователь

Механизм должен предусматривать дальнейшие расширение состава ролей.


В системе должен быть справочник операций и групп операций, которые назначаются на роль или отдельного пользователя.


Данные пользователя


Данные пользователя связаны один к одному с логином пользователя.
Учетная запись пользователя, помимо данных пользователя должна содержать информацию о нем.


В рамках данного ТЗ УЗ пользователя должна содержать:
  • телефон (в том виде в котором его ввел пользователь).
  • внутреннее поле со значением телефона приведенного к формату для машинного понимания (для двухфакторной автоматизации).
    Реализация двухфакторной авторизации является желательным, но не обязательным по текущему ТЗ.
  • признак того, что удалось или нет привести телефон к такому формату.

У администратора должна быть возможность отфильтровать пользователей у которых не прошло автоматическое приведение к формату и поправить внутреннее поле и признак.
Допустимо если этот функционал может быть реализован нативной функцией БД.


Блок должен предусматривать дальнейшую возможность расширения состава информации о пользователе.


Бизнес данные доступные пользователю


Бизнес данные связаны с пользователем многие ко многим)
При создании пользователя ему должна создаваться пространство данных (например: схема в БД), которое доступно ему и тем пользователям, которых назначит администратор.


Для примера использовать следующие бизнес данные:

Проект
-Id- идентификатор проекта (строка)

-Name - наименование проекта (строка)


Задачи проекта
-Id - идентификатор задачи проекта (строка)

-ProjectId - идентификатор проекта, к которому относится задача (строка)

-Name - наименование задачи (строка)
-Status - статус задачи (строка). Open, Backlog, InProgress, Closed


При входе в систему пользователь видит страницу, на которой отражается список проектов и список задач в формате master-detail.


Данные берутся только из тех пространств, которые доступны пользователю.




Образ результата

Рабочий модуль личного кабинета на тестовом хостинге.
Возможность войти на портал под несколькими пользователями:
  • новый
  • уже выполнявший вход в систему

И выполнить операции, которые описаны выше в ТЗ.
Возможность администратору увидеть кто и когда заходил, когда менял пароль или блок данных о себе.

Исходный код.

Инструкция, в которой должно быть описано:
-список инструментов, БД и модулей необходимых для функционирования реализованных модулей
-как развернуть необходимый инструментарий
-стэк технологий
-описание как деплоить на хостинг
-описание как подключать к будущему функционалу модуль аудита
-описание как подключать к будущему функционалу модуль логгирвоания
-описание как администратору заводить пользователей пакетом до 100 аккаунтов, каждому создается шаблонное пространство бизнес данных и базовыми полномочиями (см. раздел Ролевая модель).
-описание как администратору завести пользователей, с указанием доступа к пространствам ранее созданных пользователей, по одному или пакетом для одного из пространств.

Мои ожидания по коммункиациям

1. Предложите пожалуйста вариант решения + стэк на котором будет реализовано.
2. Оцените трудоемкость реализации по модулям
3. Опишите как планируете реализовывать модуль, что это будет: использование готовых решений, нативные функции инструмента, код
4. Стоимость часа.

Не стесняйтесь задавать вопросы по ТЗ, старался описать детально. Но все равно нам с вами важно будет выровняться по образу результата.

Читайте на 123ru.net