Евгений Колесников 11 months ago
parent
commit
73afe6982c
4 changed files with 59 additions and 0 deletions
  1. 58 0
      data/module3.md
  2. BIN
      data/Требования к разработке.pdf
  3. 1 0
      readme.md
  4. BIN
      solution/module3_01.png

+ 58 - 0
data/module3.md

@@ -0,0 +1,58 @@
+# Модуль № 3: Проектирование и разработка информационных систем
+
+## Текст задания: 
+
+Для выполнения задания рекомендуется создать в базе данных таблицу "Пользователи". Если такая таблица уже существует, необходимо внести некоторые изменения для реализации дальнейшего функционала приложения.
+
+Разработайте форму для авторизации зарегистрированных пользователей с ролями "Администратор" и "Пользователь".
+
+Форма должна содержать текстовые поля логин, пароль и кнопку "Войти". Поля "Логин" и "Пароль" должны быть обязательными для заполнения. При неверно введенных данных, пользователь должен получить сообщение об ошибке "Вы ввели неверный логин или пароль. Пожалуйста проверьте ещё раз введенные данные".
+
+После успешной авторизации пользователь должен получить сообщение "Вы успешно авторизовались".
+
+При аутентификации связка «логин/пароль» должна совпадать с одной из записей в таблице "Пользователи".
+
+При первой успешной авторизации по выданному паролю администратором должна выводится форма для смены пароля. 
+
+Форма должна включать текущий пароль, новый пароль, подтверждение нового пароля. Все поля обязательные для заполнения. После заполнения формы и нажатия кнопки "Изменить пароль", система должна проверить правильность введенного текущего пароля и совпадение нового пароля с подтверждением.
+
+В случае ошибок при заполнении формы пользователю должно выводиться сообщение об ошибке. В случае успешного изменения пароля, пользователю должно выводиться сообщение об успешной смене пароля.
+
+Если в течении 3-х раз подряд был неверно введен логин/пароль, то учетная запись блокируется и при повторном авторизации должно появляться сообщение "Вы заблокированы. Обратитесь к администратору".
+
+Так же учетная запись должна блокироваться если пользователь не авторизовался в течении 1 месяца.
+
+На рабочем столе пользователя с ролью "Администратор" предусмотрите функционал для добавления новых пользователей, изменения данных текущих пользователей (включая снятие блокировки).
+ 
+При добавлении нового пользователя следует проверять его наличие в базе данных.
+
+В случае, если пользователь с указанным логином уже существует, должно выводиться соответствующее сообщение.
+
+Графический интерфейс необходимо разработать в соответствии с требованиями к разработке.
+
+Разработайте проектную документацию на разработанный функционал.
+
+Включите описание функционального назначения, используемые методы с указанием параметров.
+
+Необходимые приложения: [Требования к разработке.pdf](./Требования%20к%20разработке.pdf)
+
+## Реализация
+
+### Доработка таблицы **User** (Пользователи)
+
+Необходимо добавить поля:
+
+- логин
+- пароль
+- дата создания (чтобы отслеживать 30 дней на первую авторизацию)
+- признак блокировки аккаунта (можно совместить со счетчиком неуспешных авторизаций и признаком активности)
+
+![](../solution/module3_01.png)
+
+**Логин** и **пароль** я сделал обязательными, но можно делать не обязательными, тогда и значение по-умолчанию не нужно.
+
+**Дата создания** обязательное поле типа DATETIME со значением по-умолчанию CURRENT_TIMESTAMP
+
+**Количество блокировок** является одновременно признаком успешной авторизации (`-1`) и количеством неуспешных (`>= 0`)
+
+Окно авторизации мне рисовать лень. Реализацию можете посмотреть в [Задание модуль_3 Авторизация.pdf](../solution/Задание%20модуль_3%20Авторизация.pdf), только работу с базой реализуте сами.

BIN
data/Требования к разработке.pdf


+ 1 - 0
readme.md

@@ -2,3 +2,4 @@
 
 1. [Модуль № 1: Проектирование и разработка информационных систем](./data/module1.md)
 1. [Модуль № 2: Соадминистрирование баз данных и серверов](./data/module2.md)
+1. [Модуль № 3: Проектирование и разработка информационных систем](./data/module3.md)

BIN
solution/module3_01.png