- На главной странице вывести статьи с постраничным разбиением (GET: /api/article?limit=1&offset=2). Статьи должны кешироваться, то есть при выборе загруженной ранее страницы они не должны загружаться повторно;
- При ajax запросах отображать loader-индикатор;
- Сделать фильтрацию статей по дате (date range) и названию;
- Создать форму добавления новой статьи (POST: /api/article);
- При клике на заголовок должнен открываться текст статьи (GET: /api/article/:id);
- Добавить кнопку удаления статьи (удаляет только из стора);
- Под статьей вывести кнопку показывающую / скрывающую комментарии (текст кнопки тоже меняется). Комментарии должны кешироваться и не загружаться повторно через API (GET: /api/comment);
- Показывать loader при загрузке комментариев;
- Создать форму добавления нового комментария к статье от анонимного пользователя. (POST: /api/comment).
Будет большим плюсом
- Роутинг (в том числе при постраничной навигации);
- Реализация редюсеров с помощью immutable js;
- Написать middleware для работы с api.
В back-end лежит js-приложение, реализующее REST api. У него отдельный package.json, поэтому перед первым запуском не забудьте выполнить команду npm install в директории back-end. Запускать это приложение отдельно не нужно, так как оно поднимается вместе с webpack-dev-server командой npm start из корневой директории. Запросы к API проксируются вебпаком, то есть обратиться к апи можно через localhost:3000/api/
Приложение необходимо реализовать на стеке React + Redux. Код должен быть написан в стандарте ES6. В остальном полная свобода.
Тут тоже на ваше усмотрение. Можете использовать, библиотеки готовых компонетов, создавать компоненты самостоятельно, демонстрируя навыки верстки, работу с css-препроцессорами и так далее. Желательно, чтобы в итоге получилось приятное на вид, корректно работающее приложение.
Результат выполнения задачи вы можете прислать нам архивом, либо ссылкой на гитхаб