Тестовое задание от компании Pro Soft systems

Исполнитель Антон Пермяков - permyakov.a.e@yandex
Введение

Так как не было ограничения по способам сборки кода, задание было выполнено с использование сборщика кода webpack, транспайлера JS ES6 -> ES5 - babel, тесты были написаны с использованием библиотеки mocha. В качестве библиотеки для css стилей, был использован bootstrap 3.

Исходный js код находится в папке /src/js.

Исходный код стилей находится в папке /src/scss.

Файл /src/index.js является является точкой входа.

В файле dist/main.js находится готовый собранный код.

Для запуска тестов необходимо выполнить команду npm test.

Для сборки проекта необходимо выполнить команду npm build.

Для работы в режиме разработки необходимо выполнить команду npm watch.

Краткое описание структуру исходного кода.

В файл /src/js/config.js вынесены переменные с URL для обращения к серверу.

Код разделен на modules и utilites. Modules - разделение кода на структурные единицы. Каждый modules отвечает за отдельный функционал приложения. Если бы понадобилось создать страницу личного кабинета потребителя, за эти отвечал бы отдельный модуль. Utilites - вспомогательные инструменты, которые могут использоваться в нескольких модулях сразу, utilites - не генерирует HTML.

Модуль /src/js/modules/consumersList.js отвечает за вывод и редактирования списка потребителей. В нем реализованы функции по построению списка потребителей в табличном виде (но не в таблице), редактирование и удаления отдельного потребителя и создание нового потребителя. Так как по заданию, APi для создания нового потребителя не предусмотрено, то реализован ограниченный функционал создания нового потребителя.

Описание предположений, условий, допущений
  • для сборки, работы в режиме разработки, похождения тестов должен быть установлен node.js;
  • для установки зависимостей нужно выполнить команду npm i;
  • адаптация для мобильных устройств не производилась;
  • сервер всегда отвечает кодом 200;
  • реакцию на отсутствующие данные (например, удаление несуществующего потребителя) не предусматривалась;
  • в качестве сервера использовался пакет Open Server;
  • тестирование работоспособности было проведено на браузерах Firefox 67.0.4, Google Chrome 75.0.3770.100, Internet Explorer 11.557.17763.0 в режиме эмуляции работы Internet Explorer 9.