Skip to content

DzmitryKaporski/english-for-kids

Repository files navigation

  1. Task: https://github.com/rolling-scopes-school/tasks/blob/master/tasks/rslang/english-for-kids.md
  2. Screenshot laptop:  Screenshot mobile phone:
     _
  3. Deploy: https://dzmitrykaporski-jsfe2021q1-english-for-kids.surge.sh/
  4. Done 2021-06-17 / Deadline: 2021-06-30
  5. Score: 310 / 360
  6. Критерии оценки: Максимальный балл за задание: 275 баллов при кросс-чеке / 360 баллов при проверке ментором Basic scope Вёрстка, дизайн, UI главной страницы приложения:
  • +20 - присутствуют все указанные в задании элементы как на мобильной, так и на десктопной версии
  • +20 - выполнены все описанные требования к оформлению приложения

Вёрстка, дизайн, UI выезжающего меню:

  • +15 - выполнены все описанные требования к оформлению приложения
  • +10 - ссылки в меню рабочие и ведут на страницы с категориями слов
  • +10 - ссылка на текущую страницу внешне отличается от остальных
  • +10 - выезжающее меню присутствует на всех страницах приложения
  • +10 - плавная анимация выезжающего меню
  • +10 - меню закрывается кликом по крестику, кликом по ссылке в меню, кликом в любом месте приложения, кроме самого меню

Вёрстка, дизайн, UI страницы категории:

  • +10 - присутствуют все указанные в задании элементы как на мобильной, так и на десктопной версии
  • +10 - выполнены все описанные требования к оформлению приложения

Режим тренировки:

  • +10 - при клике по карточке звучит произношение слова на английском языке: (+10)
  • +10 - на каждой карточке есть кнопка, при клике по которой карточка поворачивается, на обратной стороне указан перевод слова.
  • +10 - Когда курсор мыши перемещается за границы карточки, она автоматически поворачивается на лицевую сторону

Итого: 145

Advanced scope Режим игры:

  • +10 - кликом по переключателю Train/Play включается режим игры. В режиме игры указанные выше возможности режима тренировки отключаются, кнопка, при клике по которой карточка переворачивалась, и текст на карточке скрываются. Появляется кнопка "Start game". Размер карточки не изменяется. На карточке остаётся только изображение, которое занимает всю её площадь (если это не противоречит вашему дизайну):
  • +10 - после клика по кнопке "Start game" звучит английское произношение рандомного слова из тех, что находятся на странице. Для каждой страницы, и для каждой игры рандомные слова генерируются по-новой:
  • +10 - после первого клика по кнопке "Start game" надпись на ней меняется на иконку "Repeat", меняется внешний вид кнопки. При клике по кнопке "Repeat" произношение слова звучит ещё раз:
  • +10 - если пользователь кликнул по активной карточке с неправильным ответом, раздаётся звуковой сигнал "error":
  • +10 - если пользователь кликнул по активной карточке с правильным ответом, раздаётся звуковой сигнал "correct" и после него звучит произношение рандомного слова из тех, которые ещё не звучали:
  • +10 - карточка с угаданным словом становится неактивной, при этом изменяется её внешний вид. Клики по неактивной карточке звуковыми эффектами не сопровождаются, на счёт игры не влияют:
  • +10 - после начала игры каждый клик по активной карточке является правильным или неправильным ответом. Эти ответы отображаются в виде звёздочек (или других символов) разного цвета в шкале с рейтингом, которая появляется в режиме игры. Если звёздочек слишком много и шкала заполнена ими полностью, предыдущие звёздочки скрываются, а новые продолжают добавляться:
  • +10 - когда угаданы все слова в категории: если все слова угаданы правильно, звучит сигнал "success", карточки со словами скрываются, на странице отображается радостный смайлик (или другая картинка) если при угадывании слов были ошибки, звучит сигнал "failure", карточки со словами скрываются, на странице отображается грустный смайлик (или другая картинка) и количество допущенных ошибок. приложение автоматически перенаправляет на главную страницу со списком категорий

Итого: 80

Hacker scope Страница статистики:

  • [ ]+10 - страница со статистикой содержит перечень всех категорий, всех слов в каждой категории, перевод каждого слова. Минимальная ширина, при которой страница статистики отображается корректно – 320 рх. Не является ошибкой наличие в таблице со статистикой полосы прокрутки: (+20)
  • [ ]+10 - возле каждого слова указывается статистика - сколько раз по карточки с данным словом кликали в режиме тренировки, сколько раз данное слово угадывали в режиме игры, сколько ошибок при этом допустили, процент правильных ответов по каждому слову в режиме игры. После перезагрузки приложения статистика сохраняется: (+10)
  • [ ]+10 - есть возможность сортировки данных по алфавиту, для числовых значений - по их величине. Сортировка может происходить в прямом и обратном порядке и должна охватывать весь диапазон данных: (+10)
  • [ ]+10 - на странице со статистикой размещены кнопки "Repeat difficult words" и "Reset". Кнопка "Reset" обнуляет статистику. При клике по кнопке "Repeat difficult words" открывается страница изучения слов с наибольшим процентом ошибок аналогичная странице категории. На странице "Repeat difficult words" может размещаться от нуля до восьми слов, в зависимости от того сколько слов угадывалось в режиме игры и при их угадывании были допущены ошибки. После нажатия на кнопку "Reset" количество слов на странице "Repeat difficult words" равно нулю: (+10)
  • [ ]+10 - реализован дополнительный, не предусмотренный заданием функционал. Не оценивается, но, если можете сделать лучше, почему бы и нет.

Итого: 50

Выполнены требования к коду (оценивает только ментор)

  • +20 - дублирование кода сведено к минимуму, не используются магические числа, используются осмысленные имена переменных и функций, оптимальный размер функций и т.д.
  • +20 - подключены и используются webpack, eslint, eslint-config-airbnb-base
  • +20 - приложение разбито на отдельные модули
  • +15 - методы и функции не превышают 40 строк
  • +10 - используются фичи ES6 и выше

Итого: 85

Штрафные баллы (оценивает только ментор) меньше восьми категорий, меньше восьми слов в каждой категории, данные для двух последних категорий скопированы с демо, а не подготовлены самостоятельно - 10 баллов не выполняются требования к репозиторию, названиям коммитов, описанию Pull Request - до 20 баллов не выполняются требования к коду, игнорируются советы ментора относительно качества кода - до 50 баллов использование jQuery в основном коде приложения - 0 баллов за таск заимствование чужого кода (списывание) - 0 баллов за таск + возможность отчисления не использован typescript - 100 баллов за таск Запрещено копировать код других студентов, демо, примеров, которые приводятся в задании. Этот запрет касается html, css, js кода. Можно использовать небольшие фрагменты кода со Stack Overflow, других самостоятельно найденных источников в интернете, за исключением github-репозиториев студентов курса. Возле использованного чужого фрагмента кода в комментарии указывается ссылка на источник.