Online-Store - Интернет магазин
текст задания на 22/12/15
Вам необходимо создать интернет-магазин произвольной тематики. Тематику вы выбираете самостоятельно. Например, это может быть одежда, техника, автозапчасти, спорт и т.д.
Функционал вашего приложения должен соответствовать DEMO
- задание выполняется в команде, количество участников команды - два человека
- команды могут формироваться по желанию студентов или рандомно info
- Все команды должны быть зарегистрированы в Таблице
Пример исходных данных товаров
В вашем магазине должно быть не менее 20
товаров
Вы можете изменять исходные данные или использовать другие, но формат данных обязательно должен включать:
- Имя/брэнд товара.
- Категорию товара.
- Описание товара.
- Цену товара.
- Количество товара на складе
- Не менее двух фотографий товара.
Максимальный балл за задание - 300
.
- Страница товаров с фильтрами (максимальный балл -
120
). - Страница корзины выбранных товаров (максимальный балл -
60
). - Модальное окно оформления(покупки) выбранных товаров (максимальный балл -
50
). - Страница с описанием товара (максимальный балл -
40
). - Header, содержащий кол-во добавленных в корзину товаров и общую сумму покупок (максимальный балл -
20
). - Страница 404 (максимальный балл -
10
).
- TypeScript
- Modules
- Webpack
- сортировка данных
- фильтрация данных
- реализация поиска
- валидация данных
- роутинг
- для написания кода приложения используется TypeScript.
- код разбит на модули.
- для сборки кода используется
webpack
. - используется
eslint
, настроенный для проверки TypeScript. - приложение проверяется в браузере Google Chrome последней версии.
- допускается использовать css-фреймворки и css препроцессоры.
- запрещается использовать jQuery.
- разрешается использовать js-библиотеки и фреймворки(Angular/React/Vue и т.д.) только по согласованию с ментором, если нету ментора использовать нельзя.
- крайне рекомендуется разрабатывать SPA приложение
- мобильная версия не обязательна, но желательна.
- интерактивность элементов, с которыми пользователи могут взаимодействовать, изменение внешнего вида самого элемента и состояния курсора при наведении, использование разных стилей для активного и неактивного состояния элемента, плавные анимации
- в футере приложения есть ссылка на гитхаб автора, год создания приложения, логотип курса со ссылкой на курс
- задание выполняется в личном приватном репозитории.
- от ветки
main
создайте веткуdevelop
. - для деплоя используйте
gh-pages
. - если не можете для деплоя использовать
gh-pages
, используйте https://app.netlify.com/drop. Название страницы дайте по схеме: имя гитхаб аккаунта - название таска - при наступлении дедлайна репозиторий необходимо сделать публичным.
- История коммитов должна отображать процесс разработки приложения.
- Названия коммитов дайте согласно гайдлайну
- Название Pull Request дайте по названию задания
- Описание Pull Request дайте по схеме
Мержить Pull Request из ветки разработки в веткуmain
не нужно.
Засабмитить задание необходимо как можно раньше, как только в rs app появится такая возможность. Для этого зайдите в rs app https://app.rs.school/, выберите пункт Cross-Check: Submit, в выпадающем списке выберите название таска, в поле Solution URL добавьте ссылку на pr, нажмите кнопку Submit.
После сабмита задания его можно продолжать выполнять до самого дедлайна.
Каждый участник самостоятельно делает сабмит задания.
- инструкция по проведению cross-check: https://docs.rs.school/#/cross-check-flow
- ссылки на лучшие работы добавьте, пожалуйста, в эту форму https://docs.google.com/forms/d/e/1FAIpQLSdALk64QGdQjeHWrgYWn2IcteB8lwY_rufDUi13-ucneo7hLw/viewform?usp=pp_url
Максимальный балл за задание +300
Для удобства проверки выведите в консоль браузера самооценку своего проекта по пунктам с указанием баллов за каждый выполненный вами пункт.
Баллы за отдельные пункты требований указаны в разделе "Функционал приложения"
- приложение написано без использования TypeScript -300
- если вам на cross-check попалась работа которая выполнялась не командой из 2-х человек, вам необходимо заполнить форму, администраторы курса в таком случае могут применить штраф до 300 баллов
Максимальный балл за задание +200
- Репозиторий +20
- pull request выполнен в соответствии с требованиями +10
- ведётся история коммитов, названия коммитов даются согласно гайдлайну +10
- Качество кода +160
- приложение написано на TypeScript.
- используется Everyday Types +10
- используются Generics +10
- использование Object Types +10
- использование Classes +10
- использование Function +10
- нигде не используется тип Any +10
- ESLinter настроен на TypeScript (используется плагин
typescript-eslint/recommended
) и отсутствуют ошибки +10 - В конфигурационном файле TypeScript стоят флаги
"noImplicitAny": true
и"strict": true
+ 20 - webpack настроен и работает с TypeScript +10
- код разбит на модули +20
- карточки товаров добавляются динамически средствами JavaScript +10
- у ментора нет замечаний к качеству кода, либо все замечания ментора исправлены +30
- приложение написано на TypeScript.
- Тесты в приложении +20
- реализованы юнит-тесты, использующие различные методы jest – 2 балла за каждую покрытую функию/метод, но не более 20 баллов (процент покрытия каждой функции/метода не учитывается)
- Не используется TypeScript - 200.
- Используется тип Any -40
- Код не полностью покрыт типами -20
- В конфигурационном файле TypeScript не стоят обязательные флаги
"noImplicitAny": true
и"strict": true
-20 - В конфигурационном файле ESLint не включено правило
no-explicit-any
-10