Исполнитель Антон Пермяков - 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.