Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
public
src
.env
.eslintrc
.gitignore
README.md
config-overrides.js
jsconfig.json
package-lock.json
package.json

README.md

Тестовое задание #3

Примечания

Ключи к GoogleAuth и Recaptcha находятся в .env файле.

О себе

  • Имя, возраст и откуда вы?
    Имя есть в гитхабе, я из сурового Челябинска. Работаю на фрилансе (обычно Upwork). Планирую скоро устроиться на удаленку с фиксированной оплатой (не буду тут перечислять все причины, но если коротко - не хочется искать проекты и хочу иметь минимум общения, чисто писать код :) )

  • Опыт работы с React и JS в целом.
    С JS в целом - что-то между 2 и 3 годами. Ближе к двум. React - почти год (10 месяцев).

Можете добавить что-либо от себя.

В бекенде вроде нет особых проблем, но:

  1. Не возвращается дата редактирования, если таковое было.
  2. Нету refresh-токенов (чтобы не выбрасывать пользователя из аккаунта когда истечет токен)
    Можно, конечно, обновлять авторизацию тем же способом, что и была выполнена первая, но для этого надо хранить логин/пароль или токен из GoogleAuth. Первый вариант так вообще недопустим. В общем, без refresh-токена не обновить сессию, но это не критично для тестового задания.

Касательно моей реализации фронта:

  • Проект создан с помощью структуры react-modern - это моя реализация фрактальной структуры приложения. Это мой первый опыт написания приложений на основе этой структуры, так что удалось найти некоторые проблемы и баги в ней. Само собой следующие приложения, написанные с этой структурой, будут более доработанными и красивыми.
  • Мне не понравилась моя реализация контейнеров для основного контента страницы (я про PageBlock и PageContent, которые лежат в @components/layout/page). Оказалось проблемной задачей сделать страницы логина и регистрации, из-за того, что они по дизайну должны иметь отличный от обычного фон страницы. Так как PageBlock, в котором установлен фон страницы, находится выше по иерархии, нету красивого способа отрисовать его с другим цветом фона. Поэтому пришлось извращаться, но все работает, хоть и не очень красиво)
  • Есть еще некоторые мелкие недочеты, не помню точно какие, но в целом моя реализация приложения мне нравится. О тестах вспомнил только на середине пути, так что не стал их писать. Как всегда оказалось лень, хоть и хочется наконец с ними начать разбираться. Думаю написать их позже, когда появится свободное от работы время.

В целом, задание довольно интересное. Хочется показывать в любых резюме как основной пункт ;)

Вопросы

  • Откуда узнали о ТЗ?
  • Участвовали ли в ТЗ 1 / ТЗ 2
    • Да
    • Нет

Чек-лист решения

  • Авторизация через Google Sign In
  • Отображение списка новостей
  • Отображение новости в режиме чтения
  • Отображение новости в режиме редактирования
  • Удаление новости
  • Показ иконок "удалить/редактировать" только для автора
  • Роутинг и редиректы после действий

Бонус

  • Создание пользователя с вводом рекапчи
  • Форма входа для созданного пользователя (/login)