Минимально запрошенный в ТЗ функционал не сделан, поэтому результат не приняли.
Стоило сфокусироваться на минимальной части, сделать так, чтобы минимальный функционал "сиял", отлично работал. Я думаю, что доп. часть можно было вообще не делать, если бы минималка была отполирована до блеска. В ТЗ качество, важнее количества, но при этом важно полностью сделать ту часть тестового которая отмечана как "обязательная".
Глобально - мне понравилось как ты разобралась с сагами и авторизацией, я вижу что ты пыталась со всем этим справиться, и почти справилась. Концептуально приложение собрано правильно, тебе просто не хватило фокуса на важном (минимальный функционал), вместо этого ты попыталась решить побольше задачек из доп. части. В итоге получилось большое приложение, которое в целом вроде бы работает, но потыкаешь в него тут и там, и оно разваливается. Нужно было пройтись по всем частям минималки, аккуратно обработать все крайние кейсы в коде, и получилось бы отлично.
Рекомендую в следующем ТЗ так и поступить, сфокусироваться на маленькой части, но сделать ее красиво и аккуратно, а после этого уже переходить к доп части.
Короче: Если в ТЗ что-то указано как минимальное или обязательное, то это что-то должно работать полностью так как указано, без этого не имеет смысла отправлять на проверку задание.
Может показаться что я полностью закритиковал твою работу, но я вижу какую большую ты проделала работу чтобы разобраться с сагами и авторизацией, и это очень круто. Для отличного результата тебе не хватило фокуса на важном, а не навыков работы с кодом, это хорошо, потому нучиться фокусироваться проще чем разобраться с сагами :)
- ссылки на работающий проект, например на github pages
- инструкции как запустить проект для разработки
Авторизация с сохранением токена и рефреш-токена в куках;
Авторзация реализована, не до конца.
- После обновления страницы просит авторизоваться снова.
- После авторизации я не понимаю что я авторизован, интерфейс по прежнему предлагает залогиниться в правом верхнем углу.
- Не обработаны ошибки авторизации, я ввожу неверный пароль, апи возвращает 400 код, но я, как пользователь этого не понимаю
Токены сохраняются в куки, тут ок.
Обновление токена с помощью рефреш-токена, при истечении времени жизни токена;
Вижу, что попытка была, но обновление токена не работает до конца. Каждый раз при обновлении страницы код пытается обновить токен, но что-то идет не так и авторизация слетает.
При этом, сам подход верный, нужно только отладить код.
Список постов с постраничной навигацией (информация для постранички возвращается в заголовках ответа на запрос списка постов).
Постраничка реализована
Добавление поста;
Реализовано, но не очень аккуратно. Валидация от сервера обработана не до конца, если я не заполнил какое то поле, вся форма сбрасывается. Ошибка 422 от сервера выводится, но не понятно в каком конкретно месте я ошибся.
Редактирование поста;
Реализовано, но не полностью, иногда не сохраняется, после сохранения я не понимаю что запись сохранилась. Как пользователь, я жму кнопку "Изменить" для меня ничего не происходит, интерфейс не реагирует никак
Удаление поста;
Реализовано
Список/добавление/редактирование/удаление авторов;
Не реализовано
Список/добавление/редактирование/удаление тегов.
Не реализовано
Создать CRUD приложение с авторизацией, React 17, redux-saga, connected-react-router
- React 17
- Redux + Redux-saga
- React Router DOM, реализация routing
- connected-react-router
- Bootstrap
- react-toastify
- Eslint, prettier
- доступ без авторизации
- регистрация
- доступ только авторизованным
- форма создания нового поста (в select подгружены все авторы, отдельным списком вынесены все существующие теги)
- список всех существующих постов с возможностью удалить пост или просмотреть
- пагинация
- доступ только авторизованным
- форма, заполненная полученными данными поста с возможностью редактирования
- токены доступа
- axios interceptors
- просмотреть список постов, авторов, тегов
- добавить пост
- снять пост с публикации
- редактировать пост