Подскажите пожалуйста [закрыт]

128
23 марта 2021, 16:00
Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.

Закрыт 1 год назад.

Улучшить вопрос

Нужен совет. С чего начать,какие минимальные знание нужны что бы реализовать такие задачи? С чего в общем начать? Как можно полегче создать такой сайт?

Вот такие задачи

  1. Сайт с авторизацией.
  2. Пользователь может оставить заявку
  3. К заявке можно прикрепить фото
  4. У каждого пользователя разные права(Каждый пользователь видит только свои заявки, а отдел по заявкам видит только заявки которые к нему отправлены).
  5. Отдел может выбрать стадии заявки и кому направлена это заявка
  6. Пользователь видит в какой стадии его заявка
  7. Поиск заявки по номеру
  8. Если заявка выполнено, пользователь должен подтвердить что заявка выполнена.
  9. Если заявка выполнена то оно удаляется с базы
Answer 1

Сначала вам нужно выбрать БД, nosql или sql, спроектировать структуру, в вашем случае это как минимум 3 таблицы (users, roles, applications). Далее нужно прописать поля, которые нужны

users - id, username, hash, salt, roleId(fk), departmentId(fk)

departments - id, name

roles - id, name

applications - id, text, creatorId(fk), departmentId(fk)

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

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

Далее добавляешь эндпоинты для заявок -

/get ('тут ты проверяешь роль, чтобы выгружать только те заявки, которые нужны, также тут в параметрах добавляешь возможность поиска по id'),

/create ('Тут тоже проверяешь, ибо скорее всего отдел не может создавать заявки'),

/update ('Тут отдел обновляет текущий статус заявки')

/setExecute ('Тут назначается отдел, который должен исполнять заявку')

/close ('Тут юзер закрывает заявку')

READ ALSO
Ошибка при работе с базой данных в java, androidStudio

Ошибка при работе с базой данных в java, androidStudio

Пожалуйста скажите почему у меня здесь подчёркивается красным

97
Ввод данных через консоль используя Scanner

Ввод данных через консоль используя Scanner

Почему при вводе данных в консоль, например 100 * 5, получается не 5000, а ошибка?

97
Как вытащить параметры с JSP страницы?

Как вытащить параметры с JSP страницы?

Есть JSP страница, на которой меняется какой-то текст, как можно изменения текста передавать на контроллер? То есть при нажатии на кнопку "отправить"...

108