Giter Club home page Giter Club logo

copy-rep's Introduction

Online-Store - Интернет магазин

текст задания на 22/12/15


Вам необходимо создать интернет-магазин произвольной тематики. Тематику вы выбираете самостоятельно. Например, это может быть одежда, техника, автозапчасти, спорт и т.д.

Функционал вашего приложения должен соответствовать DEMO

Формирование команд

  • задание выполняется в команде, количество участников команды - два человека
  • команды могут формироваться по желанию студентов или рандомно info
  • Все команды должны быть зарегистрированы в Таблице

Пример исходных данных товаров

В вашем магазине должно быть не менее 20 товаров

Вы можете изменять исходные данные или использовать другие, но формат данных обязательно должен включать:

  1. Имя/брэнд товара.
  2. Категорию товара.
  3. Описание товара.
  4. Цену товара.
  5. Количество товара на складе
  6. Не менее двух фотографий товара.

Максимальный балл за задание - 300.

Функционал приложения

  1. Страница товаров с фильтрами (максимальный балл - 120).
  2. Страница корзины выбранных товаров (максимальный балл - 60).
  3. Модальное окно оформления(покупки) выбранных товаров (максимальный балл - 50).
  4. Страница с описанием товара (максимальный балл - 40).
  5. Header, содержащий кол-во добавленных в корзину товаров и общую сумму покупок (максимальный балл - 20).
  6. Страница 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

Как сабмитить задание

Засабмитить задание необходимо как можно раньше, как только в rs app появится такая возможность. Для этого зайдите в rs app https://app.rs.school/, выберите пункт Cross-Check: Submit, в выпадающем списке выберите название таска, в поле Solution URL добавьте ссылку на pr, нажмите кнопку Submit.
После сабмита задания его можно продолжать выполнять до самого дедлайна. Каждый участник самостоятельно делает сабмит задания.

Cross-check

Максимальный балл за задание +300

Для удобства проверки выведите в консоль браузера самооценку своего проекта по пунктам с указанием баллов за каждый выполненный вами пункт.

Баллы за отдельные пункты требований указаны в разделе "Функционал приложения"

Штрафы Cross-check

  • приложение написано без использования TypeScript -300
  • если вам на cross-check попалась работа которая выполнялась не командой из 2-х человек, вам необходимо заполнить форму, администраторы курса в таком случае могут применить штраф до 300 баллов

Проверка задания ментором

Максимальный балл за задание +200

  1. Репозиторий +20
    • pull request выполнен в соответствии с требованиями +10
    • ведётся история коммитов, названия коммитов даются согласно гайдлайну +10
  2. Качество кода +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
  3. Тесты в приложении +20
    • реализованы юнит-тесты, использующие различные методы jest – 2 балла за каждую покрытую функию/метод, но не более 20 баллов (процент покрытия каждой функции/метода не учитывается)

Штрафы ментора.

  1. Не используется TypeScript - 200.
  2. Используется тип Any -40
  3. Код не полностью покрыт типами -20
  4. В конфигурационном файле TypeScript не стоят обязательные флаги "noImplicitAny": true и "strict": true -20
  5. В конфигурационном файле ESLint не включено правило no-explicit-any -10

Материалы

Вебинары RS School

copy-rep's People

Contributors

eternalrival avatar jirisimonov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.