В период с 2015 по 2016 я принял участие в создание сайта в Ижевске для дистанционного изучения удмуртского языка.
Задача
В связи с этим, передо мной была поставлена следующая задача:
Разработать прототип сайта для дистанционного изучения удмуртского языка, который помогал бы людям из других городов и поселков изучать язык не выезжая на занятия в Ижевск
Процесс выполнения работ
Для достижения поставленной задачи, обозначил план работ:
- Определить портрет основных пользователей системы
- Выбрать подходящие инструменты. С учетом дальнейшего масштабирования и нагрузок на систему
- Использование национального алфавита на сайте
- Определить роли пользователей в системе
- Спроектировать интерфейс c учетом портрета пользователей
- Реализовать базовый функционал, с помощью которого уже можно приступить к изучению слов
- Добавить геймификацию в систему
Подготовительный этап
1. Первым делом, я стал определять: кто же является целевой аудиторией?
По итогу, сюда попали люди в возрасте от 7 и до 40+ лет. Получился очень большой диапазон по возрастной категории.
На этом этапе решил не распыляться, и сделали упор на людей в возрасте от 14 до 35 лет.
В этот диапазон попадают: школьники средних и старших классов, студенты, работники гос. учреждений.
Которые уже могут подходит более осознанно к изучению языка
Так же учитывал индивидуальные особенности здоровья людей.
2. Вторым делом мы провели анализ двух систем для изучения иностранных языков: Lingualeo и Duolingo.
С помощью анализа данных сайтов, хотел определить базовые модули, вокруг которых выстраивается все обучение пользователя.
И для системы определил 4 модуля, такие как:
- Читаем и запоминаем
- Пишем правильно
- Составление слов
- Тренировка перевода
Роли системы
Обозначил 3 основных роли, которые будут в системе, это:
- Авторизованный – пользователю с данной ролью, доступны все разделы для выполнения практических заданий системы
- Администратор – пользователю с такой ролью, доступен весь функционал системы. В том числе, удаление, добавление и редактирование, как заданий, так и пользовательских данных
- Гость – с данной ролью пользователь мог использовать только функционал «Изучение 15 слов в день»
Разработка проекта и инструменты
Для разработки проекта выбрал следующие инструменты:
- Язык программирования PHP — для серверной части проекта
- Библиотеку JQuery — для клиентской части
- Bootstrap 4 UI с дополнениями — для использования готовых компонентов, что позволяет быстро спроектировать базовый интерфейс системы
- Asana — менеджер для управления задачами по проекту
Разработка интерфейса и функционала

Страница с выбором упражнения
После авторизации, пользователь попадал на данную страницу. Он мог выбрать необходимо для выполнения упражнение, либо изучение теоретического материала по удмуртскому языку
Все слова и предложения, которые используются в упражнениях, были составлены и переведены носителями языка. Это позволило пользователю получить максимум полезной информации о применении того или иного слова в речи
Упражнение “Читаем и запоминаем”
Основное назначение данного упражнения — это изучение слова и его перевода, а также как оно может использоваться в предложении.
Все слова были отсортированы по алфавиту, и пользователь прежде чем перейти к изучению, выбирал необходимую букву алфавита.

Упражнение «Читаем и запоминаем»
Упражнение “Пишем правильно”
В данном упражнение пользователю в случайно порядке выводились слова из базы. И необходимо была повторить их написание.
Соответственно, пользователь мог отследить в каких словах он допустил ошибку, а какие написал правильно и их общее количество.

Упражнение «Пишем правильно»
Не смотря на кажущуюся простоту данного упражнения, пользователи тренировали правописание удмуртских слов. С использованием дополнительных букв, которые входят в удмуртский алфавит.
Упражнение «Составляем слова»
Основная задача данного упражнения — это проверить, насколько пользователь запомнил слова из упражнения «Читаем и запоминаем» и закрепить повторно то или иное слово.
Если пользователь не знает, что за слово там скрыто, то наведя курсор на него — получит подсказку

Упражнение «Составляем слова»
Упражнение “Тренируем перевод”
Аналогично предыдущему модулю, в этом пользователь получает случайное слово из базы и необходимо ввести перевод слова.

Упражнение «Тренируем перевод»
Но что к примеру делать, если ты не знаешь перевод?
Тогда пользователь мог воспользоваться подсказкой — наведя курсор мыши на слово. Так же, в данном модуле ведется учет ошибок, когда пользователь неправильно перевел то или иное слово

Подсказка, как можно перевести данное слово
Журнал ошибок
Все ошибки по модулям “Тренируем перевод” и “Составляем слова” выводятся в “Журнале ошибок”. Где каждый пользователь может увидеть, сколько ошибок он совершил и с возможностью исправить их

Журнал ошибок, где хранятся все ошибки пользователя
При нажатии на кнопку “Попробовать еще раз” пользователя перенаправляло на страницу для исправления данного слова.
Если вновь была совершена ошибка, то слово оставалось в журнале этого модуля

В каких словах была сделана та или иная ошибка
Раздел “15 слов каждый день”
Из-за большого количества слов и предложений, которые содержатся в упражнение “Читаем и запоминаем”, пользователи не могли запомнить такой объем информации. Поэтому я решил ограничить количество изучаемых слов каждый день.
Исходя из этого, ввел новый раздел, где каждый посетитель сайта не авторизуясь на нем, мог изучать 15 случайных слов и их перевод.
Ежедневно в полночь, список данных слов обновлялся, что позволяло каждый день изучать новые слова.

Вывод 15 слов каждый день после 00:00 по Москве
Геймификация (использование элементов игрового процесса)
Конечно использование базовых возможностей системы быстро надоедает.
Поэтому было принято решение — внедрить элементы игрового процесса на сайт
Для этого были придуманы два персонажа: мальчик и девочка. Данных персонажей нарисовали специального для этого проекта. С использованием национальных костюмов Удмуртии

Создание персонажа на сайте не являлось обязательным условием для использования базовых возможностей.
Но если пользователь хотел создать своего персонажа, то он переходил в пункт меню “Мой персонаж” и запускался процесс создания.

Страница создания персонажа
Я подумал, что процесс создания персонажа должен быть максимально простым и быстрым.
Поэтому сделал только две настройки — это:
- Внешний вид
- Имя
А ключевым показателем для прокачки персонажа сделали — интеллект.
Но как пользователю прокачивать данный параметр?
Для этого ввел 3 вида книг, каждая из которых добавляла определенное количество очков интеллекта.
- Синяя = 20 очков
- Зеленая = 100 очков
- Красная = 300 очков
Так же реализовал автоматический перевод из одной книги в другую, при накоплении определенного количества одного вида. Из синей в зеленую, из зеленой в красную

Страница персонажа авторизованного пользователя
Хорошо. А откуда брать эти самые книги?
Выполнять упражнения “Пишем правильно” и “Читаем и запоминаем”. За правильное выполнение и изучение определенного количества слов, пользователь получал синюю книгу.
После, мог либо перевести в параметр “Интеллект”, либо оставить и позже перевести в зеленую или красную книгу, и получить больше очков.
А чем суть данной прокачки?
На основе параметра “Интеллект” выводился общий рейтинг пользователей. За счет чего мог увидеть, кто больше и чаще пользуется сайтом и стимулировать других пользоваться им, предлагая дополнительные бонусы лидерам в рейтинге.
Методология разработки проекта
Я использовал гибкую методологию разработки, адаптированную под наши внутренние процессы. Для получения обратной связи от пользователей, по тем или иным упражнениям, недочетам и будущим пожеланиям по развитию системы.
Для постановки и управления задачами по проекту использования менеджер задач Asana