Skip to content

Latest commit

 

History

History
60 lines (42 loc) · 2.81 KB

readme.md

File metadata and controls

60 lines (42 loc) · 2.81 KB

Тестовое задание по требованиям из requirements.md. Проект развернут на Heroku

Запуск проекта:

npm i - установить зависимости.

npm run dev - разработка на http://localhost:3000/.

Запускает параллельно:

  • npm run dev:client - сборка клиентский файлов в watch-режиме.
  • npm run dev:server - сборка серверных файлов в watch-режиме и перезапуск сервера при изменении серверных файлов.

npm start - build сборка и запуск сервера на http://localhost:3000/.

При первом запуске сервера хранилище заполняется тестовыми данными из src/server/default-deals.ts

Структура проекта

src/client/index.tsx - точка входа клиентской части

src/client/components - компоненты интерфейса по методологии Atomic Design

src/client/redux - управление глобальным состоянием приложения, взаимодействие с бэком

src/server/index.ts - точка входа серверной части части

Технологии проекта

  • Webpack
  • TypeScript

Клиент

  • React + Redux
  • React Router v4
  • Styled components (для глобальных стилей - postcss)

Сервер

  • NodeJS + Express
  • LowDB

Потенциальные доработки:

  • Более тщательная валидация полей при отправке сделки на клиенте и на сервере
  • Для соответствия макету, график должен выходить за поля страницы по слдеюущим причинам:
  1. на макете точка, лежащая на левой границе выходит за график (minor, либо баг дизайна).
  2. на макете не учтены ставки больше 99 - они вылезают за поля страницы. Сейчас в качестве быстрого решения при появлении сделок выше 99 уменьшается размер шрифта подписей.
  • Подключить tslint.
  • Серверный рендеринг.

Тест-кейсы

  • Много сделок
  • Нет сделок
  • Одна сделка
  • Удаление сделки
  • Добавление сделки
  • Добавление сделки с большой (по сравнению с другими) суммой и ее удаление.