Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rs-lang #9

Open
wants to merge 131 commits into
base: main
Choose a base branch
from
Open

rs-lang #9

wants to merge 131 commits into from

Conversation

nosbog
Copy link
Owner

@nosbog nosbog commented Feb 21, 2022

Task: https://github.com/rolling-scopes-school/tasks/blob/master/tasks/stage-2/rs-lang/rslang.md
Screenshot:
image
Deploy: https://brave-borg-9a2231.netlify.app/
Done: 22.02.22 (deadline: 22.02.22)
Score: 620 (из 620)
\\\

Главная страница приложения +40 (из 40)

вёрстка, дизайн, UI главной страницы приложения
(Динамически формируемый задний фон, работа с svg графикой)

главная страница приложения содержит:
меню с навигацией по учебнику, ссылками на мини-игры и статистику. Меню или иконка меню отображается на всех страницах приложения
описание возможностей и преимуществ приложения
раздел "О команде" с фото или аватарками и ссылками на гитхабы всех участников команды, описанием вклада в разработку приложения каждого из них. При желании данный раздел можно вынести в отдельную страницу
footer со ссылками на гитхабы авторов приложения, год создания приложения, логотип курса со ссылкой на курс. footer отображается на всех страницах приложения за исключением мини-игр
\\\

Авторизация +50 (из 50)

реализована авторизация и регистрация пользователя
(+Если пользователь, будучи автроризированным, перезупастил страницу, то произойдет распознание его аккаунта.
+Автоматическая авторизация, если регистрация прошла успешна)

при перезагрузке приложения данные о пользователе и полученный при авторизации токен сохраняются в localStorage

электронный учебник (без раздела "Сложные слова", без отображения прогресса изучения слов и изученных слов) и мини-игры доступны без авторизации
(Для категории "сложных слов" в учебнике для неавторизированных пользователей предусмотрена запись, что данный функционал доступен только для авторизированных пользователей)

у авторизованных пользователей отображается раздел "Сложные слова", прогресс изучения слов, изученные слова и статистика
(+ Отображается категория "выученные слова", в которой, как и в категории "сложные слова", можно сделать слово обычным.
Отсутствие статистики по конкретному слову (приходит ошибка от сервера, которая попадает в блок catch) обрабатывается как слово с нулевой статистикой)

при логауте данные пользователя и токен удаляются из localStorage, а пользователь становится анонимным
\\\

Электронный учебник +75 (из 80)

вёрстка, дизайн, UI страниц электронного учебника

электронный учебник генерируется на основе коллекции исходных данных и состоит из шести разделов, в каждом разделе 30 страниц, на каждой странице 20 слов для изучения

седьмой раздел учебника - "Сложные слова" изначально пустой. Этот раздел состоит из слов, которые пользователь отметил как сложные. Все слова в этом разделе размещаются на одной странице. На усмотрение разработчиков, слова в данный раздел добавляются либо в том порядке, в котором пользователь отмечал их как сложные, либо в порядке, в котором они находились в учебнике.
(+ Присутствует раздел с "выученными" словами с таким же функционалом, только для слов этой категории)

на каждой странице учебника отображается:
меню или иконка меню
список из 20 слов (в разделе "Сложные слова" слов может быть больше)
ссылки на мини-игры "Аудиовызов" и "Спринт"
(Если мини-игра запустилась авторизированным пользователем, то в игре не используются "выученные" слова. Если пользователь неавторизирован, то слова без ограничений.)
навигация по страницам учебника
также необходимо реализовать навигацию по семи разделам учебника и предусмотреть небольшие различия в оформлении каждого раздела
(Разное оформление заднего фона)
при перезагрузке страницы открывается последняя открытая страница приложения
(Не реализовано)
\\\

Список слов +80 (из 80)

вёрстка, дизайн, UI списка слов

для каждого слова отображается:
само слово, транскрипция, перевод
предложение с объяснением значения слова, перевод предложения
предложение с примером использования изучаемого слова, перевод предложения
картинка-ассоциация к изучаемому слову
иконка аудио, при клике по которой последовательно звучит произношение изучаемого слова, произношение предложения с объяснением его значения, произношение предложения с примером его использования
(+ Если нажать на несколько иконок аудио, то предыдущая аудиодорожка прерывается и начинается новая)
только у авторизированных пользователей отображаются:
кнопка, при клике по которой слово можно отметить как сложное (в разделе "Сложные слова" на её месте отображается кнопка, снимающая отметку что это сложное слово и удаляющая его из данного раздела)
(+ Кнопка действует в обе стороны: добавляет в указанную категорию и при повторном клике убирает из категории)
кнопка, при клике по которой слово можно отметить как изученное
(+ Кнопка действует в обе стороны: добавляет в указанную категорию и при повторном клике убирает из категории)
если слово отмечено как сложное, оно остаётся на странице учебника и выделяется стилем, указывающим, что данное слово относится к сложным словам. Также данное слово добавляется в раздел "Сложные слова"
если слово отмечено как изученное, оно остаётся на странице учебника и выделяется стилем, указывающим, что данное слово относится к изученным словам
если все слова на странице относятся к изученным словам или к изученным и сложным словам, такая страница считается полностью изученной и выделяется стилем. Также стилем выделяется соответствующая ей кнопка навигации по страницам учебника. Ссылки на мини-игры на этой странице становятся неактивными.
\\
Мини-игры "Аудиовызов" и "Спринт" +200 (из 200)

функционал мини-игр "Аудиовызов" и "Спринт" полностью повторяет функционал одноимённых мини-игр приложения Lingualeo

в оформление мини-игр можно внести изменения, с целью улучшения их дизайна и UI, и достижения единства стиля мини-игр и созданного приложения
(+ Добавлены разные динамечикие фоны для игр)

по окончанию каждой игры выводятся результаты мини-игры

управлять игрой можно как мышкой, так и клавишами на клавиатуре, как это реализовано в оригинальных играх
(На кнопках опций обозначены символы, по нажатию на клавиатуре по которым выбирается соответствующая опция)

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

если мини-игра запускается со страницы учебника, в ней используются слова из той страницы учебника, на которой размещена ссылка на игру. Если размещённых на странице слов для игры недостаточно, задействуются слова с предыдущих страниц. Если предыдущих страниц нет или недостаточно, игра завершается досрочно, когда закончатся все доступные слова
\\\

Прогресс изучения +50 (из 50)

новые слова - это слова, которые впервые использовались в мини-играх вне зависимости от того, открывались мини-игры на странице учебника или по ссылке в меню

возле каждого слова, которое использовалось в мини-играх, на странице учебника указывается прогресс его изучения за весь период: было ли слово правильно угадано в мини-играх, или пользователь ошибался
\\
Изученные слова +60 (из 60)

изученные слова, это слова, которые пользователь отметил как изученные на странице учебника
(+ Также правильно обрабатываются случаи, когда кнопка используется в обе стороны (добавление в категорию и удаление из нее) => происходит обновление времени, когда слово стало выученным)

также слова считаются изученными по результатам их угадывания в мини-играх. Например, три правильные ответа подряд для обычных слов и пять правильных ответов подряд для сложных слов, либо другая логика на усмотрение разработчиков
(Реализованная логика:
Существует 3 возможных состояния слова: "сложное", "обычное", "выученное".
Правильный ответ, даннный в игре, сдвигает на одно состояние вправо. (например, было "сложное", после одного правильного ответа стало "обычным")
Неправильный ответ, даннный в игре, сдвигает на одно состояние влево.
Изначально слова "обычные".
)

если сложное слово стало изученным, оно перестаёт быть сложными и удаляется из раздела "Сложные слова"
изученные слова не задействуются в мини-играх, которые запускаются на страницах учебника, но задействуются в мини-играх, которые открываются по ссылке в меню

если при угадывании изученного слова в мини-игре пользователь ошибся, слово удаляется из категории изученных
\\\

Страница статистики +60 (из 60)

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

в краткосрочной статистике по мини-играм указываются результаты по каждой мини-игре отдельно
количество новых слов за день
процент правильных ответов
самая длинная серия правильных ответов
в краткосрочной статистике по словам указываются
количество новых слов за день
количество изученных слов за день
процент правильных ответов за день
\\\

Дополнительный функционал +80 (из 80)

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

очень высокое качество оформления приложения +40

возможность использовать кнопки переключения состояния слов в обе стороны (добавление в категорию\удаление из нее) +5

дополнительная категория в учебнике с "выученными" словами с возможностью там сделать слова "обычными"
\\\

nosbog and others added 27 commits February 20, 2022 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants