Нужно разработать интерфейс для сайта Hacker News, состоящий из двух страниц.
- Показывает последние 100 новостей в виде списка, отсортированного по дате, самые свежие сверху.
- Каждая новость содержит:
- название
- рейтинг
- ник автора
- дату публикации
- По клику на новость происходит переход на страницу новости
- Список новостей должен автоматически обновляться раз в минуту без участия пользователя
- На странице должна быть кнопка для принудительного обновления списка новостей
- Должна содержать:
- ссылку на новость
- заголовок новости
- дату
- автора
- счётчик количества комментариев
- список комментариев в виде дерева
- Корневые комментарии подгружаются сразу же при входе на страницу, вложенные - по клику на корневой
- На странице должна быть кнопка для принудительного обновления списка комментариев
- На странице должна быть кнопка для возврата к списку новостей
- Приложение разработано с использованием React и Redux
- Использован официальный API Hacker News. Вызовы Hacker News API и обработка данных от него производятся напрямую с фронтенда (кроме случая, если вы сделаете опциональное задание про Node.JS)
- Роутинг выполнен с использованием React Router v5
- Фреймворк UI любой на ваше усмотрение (как пример Ant Design или Semantic UI).
- Можно и на чистом css, главное, чтобы было красиво
- Пакетный менеджер
yarn
- Приложение должно запускаться по адресу
localhost:3000
командойyarn start
- При переходах по ссылкам страница не перезагружается
- Исходный код решения должен быть выложен с вашего аккаунта на Github с Readme файлом с инструкцией по запуску
- Использование TypeScript
- Бэкенд для хостинга статики и API для инкапсуляции внешних запросов на Node.JS
- Покрытие кода юнит-тестами
Пример решения тестового задания можно найти в папке SolutionExample
. Решение представленно на основного одного из решенных тестовых заданий
Решение состоит из двух частей. В первой реализована клиентская часть вместе с опицональными заданиями. Вторая состоит из серверной части. Каждая часть содержит свой README.md
по запуску