Задача: Добавить админку управления пользователями и подготовить управление JWT-токенами

Добавить админку управления пользователями и подготовить управление JWT-токенами

Сделать админку управления пользователями и заложить UI-основу для последующего управления JWT-токенами идентификации пользователей.

Админка пользователей и управление JWT-токенами

Контекст

Главная последующая цель — управление JWT-токенами, которые используются для идентификации пользователя, которому адресуется сообщение.

Серверные запросы для работы с пользователями уже существуют. В рамках первого этапа backend пользователей не переделывать.

Первый этап — выполнить сейчас

Сделать админку управления пользователями:

  • список пользователей;
  • действие «Добавить пользователя»;
  • возможность открыть карточку пользователя;
  • редактирование пользователя;
  • использовать уже существующие GraphQL-запросы и мутации;
  • добавить клиентские GraphQL-операции и перегенерировать типы.

UI-kit

Попутно начать собственный ui-kit поверх уже установленного React Aria:

  • React Aria использовать как headless-основу;
  • каждый необходимый приложению UI-компонент оформлять отдельным компонентом в ui-kit;
  • для каждого нового компонента сразу добавлять Storybook story;
  • в продуктовых экранах использовать компонент из ui-kit, а не React Aria напрямую.

Следующий этап — JWT-токены

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

Технические заметки

  • Hot reload уже работает, отдельно настраивать его не нужно.
  • React Aria уже установлен.
  • Backend CRUD пользователей уже есть.

Критерий первого этапа

Из интерфейса администратор может увидеть пользователей, добавить пользователя, открыть существующего пользователя и изменить его данные. Клиентские GraphQL-операции добавлены, типы успешно перегенерируются, используемые UI-элементы оформлены через ui-kit и имеют Storybook stories.