Добрый день, ищем помощника

Проект потерял бэкенд разработчика, нужно довести до конца разработку веб-сайта (дописать/переписать зависит от пожелания подрядчика). Общее ТЗ будет в приложении, далее список того, что нужно реализовать.
Проект построен на MERN, соответственно бекенд = Node, Express, Mongo. + JWT(json web token). По токену идут любые валидации юзера. Этот функционал сейчас на бэкенде полностью работает, но нужно настроить валидацию токена для некоторых существующих запросов и для всех новых.
В токене сейчас отправляются ID юзера, категория юзера (админ, юзер).
1. По регистрации юзера:
• Проверка на существующего юзера уже есть.
• Проверка на длину пароля и на соответствие почты юзера шаблону почты со стороны сервера вероятно нету. Её нужно сделать. (со стороны фронта есть но этого недостаточно)
• Нужно подключить валидацию почты.
2. По входу юзер:
• Есть проверка на правильность ввода пароля.
• Нету ничего по предотвращению брутфорса. Необходимо сделать защиту от брутфорса.
• Так же нет формы сброса пароля. Её тоже нужно реализовать.
3. Создание модели "выбранные категории":
• За юзером уже существует, но необходимо изменить модель: ['id1', 'id2'] -> [{id1, active: false},{id2, active: true}]. Или как-либо, нужно хранить два стейта связанными с юзером (выбранная категория и параметр active).
• Обновление данных для юзера сейчас происходит полной перезаписью. "Источником истины" является юзер агент(браузер). При каждом действии пользователя (изменил состояние модели с active: true => active:false; добавил/убрал категорию) обновляется локальная модель (Redux) и она же отправляется на сервер и полностью перезаписывает данные для юзера. Ответ сервера никак не обрабатывается, нужно настроить.
4. События:
• Отдача ивентов с сервера сейчас происходит просто списком без сортировки и уже с пагинацией. Её нужно будет переделать. Сервер должен будет получать список активных категорий и отвечать (массивом объектов(ивентов) + закончился ли перебор ивентов или можно запросить еще). Абсолютно стандартная схема. В идеале добавить количество ивентов которые сервер отдает с каждым запросом, чтобы можно было без перестройки сервера на фронте подстраивать это число.
• Так же сейчас нету механизма получения выбранных для юзера категорий и их стейта (active)(при входе, например). Его нужно реализовать отдельным запросом или отправлять ответом на вход юзера вместе с токеном, например. Или другим способом на усмотрение подрядчика.
5. Пользователь:
• Для пользователя отсутствует модель "сохраненных ивентов". Её нужно реализовать на сервере и отдавать пользователю отдельным запросом, по которому будет сформирована страница закладок. Также нужно создать механизм добавления ивента в закладки.
• Сама модель ивентов вроде бы готова и работает, но там нету даты ивента. Её нужно будет добавить.
Весь проект в приложении