- Создать проект на гитхабе. Разобраться с NPM, добавить package.json с backbone, jquery, lodash.
- Настроить сборку scss, js используя webpack.
- Сверстать форму ввода артикула.
- Создать коллекцию для товаров.
- Создать вью для формы поиска.
- Добавить в проект Jest, написать тесты на модель и вью. Протестировать каждый метод. Все последующие задачи должны включать тесты.
- Сверстать страницу товара с фото и характеристиками.
- Создать модель и вью товара, реализовать вывод данных о товаре.
- Реализовать вывод характеристик товара.
- Реализовать вывод фото товара.
- Сверстать отзывы.
- Создать коллекцию и вью для отзывов.
- Реализовать вывод отзывов.
- Установить расширение для браузера, разрешающее cross origin запросы (для работы с API).
- Установить node.js и git.
- Зарегистрироваться на github, сгенерировать ключи прописать в настройках.
- Создать новый проект на github.
- Посмотреть макеты на яндекс-диске.
- Документация Backbone.js: оригинальная, перевод.
- Каждая задача должна быть выполнена в новой ветке и оформлена в пулл-реквест в репозиторий проекта.
- Названия веток должны быть вида BB-номер задачи (например BB-1).
- Название пулл-реквеста соответсвует названию ветки.
- В описании пулл-реквеста содержится описание того, что было сделано.
- Папка node_modules не должна быть под гитом.
- Разобраться с назначением файлов .gitignore.
- Репозиторий с проектом (файлы package.json, .gitignore).
- Понимание работы с пакетами.
- Понимание назначения файла package.json, .gitignore.
- Файл настроек webpack.
- Исходные файлы
.js
и.scss
,index.html
с подключенными стилями и скриптами. - Папка для результатов сборки.
- Результаты сборки не должны быть под гитом.
- В результате сборки должен получаться один файл со скриптами и один файл со стилями.
- Статья об основных сущностях в документации webpack.
- Подробная статья о конфигурации webpack.
- Форма ввода артикула должна соответствовать макетам.
Пример запроса на API: https://www.sima-land.ru/api/v3/item/?sid=123456,1005002
- Создан файл коллекции для товаров.
- При открытии страницы отправляется запрос на сервер, в консоль выводится заполненная коллекция.
- Расширять коллекцию от
Backbone.Collection
. - Для корректного заполнения коллекции необходимо переопределить метод
parse
. - Прочитать про систему событий Backbone. Изучить, как работают коллекции, в какой момент происходит событие
sync
. - Свойство
url
может быть строкой или функцией.
- Создан файл вью поиска, добавлен шаблон для товаров.
- При вводе списка артикулов и нажатии на кнопку поиска, отправляется запрос на получение товаров.
- При получении ответа, выводится список товаров (название, артикул).
- Расширять вью от
Backbone.View
. - Изучить синтаксис lodash-шаблонов.
- Создать lodash-шаблон в теге
<script>
. - Создать метод render, использовать
$.html()
для вставки новой разметки в элемент. - Изучить назначение объекта
events
, привязать к клику на кнопку методrender
.
6. Добавить в проект Jest, написать тесты на модель и вью. Протестировать каждый метод. Все последующие задачи должны включать тесты.
- Подключенный jest.
- Два файла тестов (для вью и коллекции).
- Разобраться с методами фреймворка для тестов:
beforeEach
,afterEach
,spyOn
,expect
.
- Страница товара должна соответствовать макетам.
- После нажатия кнопки Подробнее, отображается карточка товара, с фотографией, названием и ценой, списко с атрибутами.
- Добавить к запросу товаров
&expand=photo_sizes,description
для получения описания товара и информации о размерах фото. - Ссылки на фото товара приходят в массиве
photos
, информация о версиях фото в массивеphotoVersions
. - Адрес фото товара строится по шаблону:
PHOTO_PART/PHOTO_INDEX/PHOTO_SIZE.jpg?v=PHOTO_VERSION
. - Пример адреса фотографии товара:
https://cdn2.static1-sima-land.com/items/802893/0/700.jpg?v=0
.