exam-tooth-react-mobx-ts-sc-router-material

Тестовое задание.

https://k0t0vich.github.io/react/exam-tooth-react-mobx-ts-sc-router-material/index.html

##Getting Started

npm install / yarn install - Install dependencies.
npm run start / yarn start - Run development build with hot reload. If it doesn't start, make sure you aren't running anything else in the same port. Default PORT=3000
npm run build / yarn build - Run production build. See public folder.

Тестовое задание На стеке React + TypeScript + MobX + Styled-components + webpack + React-router v4 Выполнить следующее задание: Напишите небольшое SPA приложение, состоящее из 3-х основных компонентов

  • Страница авторизации (логин пароль захардкожен – root / admin)

  • При успешном вводе логина/пароля, запись в LocalStorage флага о допуске к сайту(любой ключ) . переход на следующий этап 2)

  • Без авторизации(то есть без записи в localStorage) делать редирект на страницу авторизации

  • При не успешном вводе, сообщение об ошибке – в любом, понятным для пользователя виде

  • Страница с таблицей (Все поля из прикрепленного JSON’a)

  • Страница 2) и страница 3) должны содержать общий header, в котором указан логин и кнопка выйти

  • Первый столбец – reference

  • Только в этом столбце значения должны быть ссылками(id = caseUid), а не текстом.

  • При клике на ссылку переход на 3) компонент с передачей этого id

  • К таблице должен применятся простой фильтр типа <input />, который фильтрует данные по всем столбцам и оставляет только те записи, которые подходят под его действие

  • Фильтр применяется по нажатию на Enter

  • Будет плюсом, но необязательно: подсветить результаты совпадений в отфильтрованной таблице

  • На странице должна быть доступна пагинация (pagination) + выбор количества записей на странице(5,10,15,25)

  • Страница с материалом

  • На вход дается id

  • По id получить запись из JSON’a

  • Вывести эту запись на страницу материала в виде таблицы Ключ-значение

  • Страница должна содержать кнопку «Назад к таблице»

  • На страницу можно перейти по прямому url. Например http://localhost:9000/table/case?caseUid=1234

  • 1.a.i должно выполнятся! Дополнение MobX использовать в strict mode, то есть изменять состояние можно только через @action Для прокидывания MobX стейта, использовать Provider – из mobx-react, далее использовать во всех компонентах @inject(‘stateName’) Все интерфейсы должны быть описаны. Нельзя использовать тип any!!! То есть для всех аргументов, даже для событий мыши, нужно правильно использовать типы и правильно указывать обобщение.

Все тестовое задание должно запускаться при помощи двух команд.

  • Yarn install / npm install
  • Yarn run start / npm … Порт – любой Все красивости анимации на ваше усмотрение, но будет плюсом. Для создания элементов интерфейса можно использовать любые либы. Как вариант - https://material-ui.com/ MobX лучше использовать > 3 версии Typescript – последней версии P.s. Можно использовать любые boilerplate, для создания SPA. Но будьте готовы объяснить, что значит каждый параметр. То есть при его использовании, удалите все не нужное.

Почитайте о best practices по всему стеку, чтобы использовать наиболее элегантные решения