Создание собственной образовательной платформы - это не только про код, дизайн и архитектуру. Это про идею, которая постепенно обрастает формой и становится чем-то настоящим. В этой статье я расскажу: что уже реализовано, какие задачи сейчас в приоритете и куда движется проект.
Что ожидается в первой версии MVP
В конечном итоге я добиваюсь того, чтобы первая версия MVP содержала в себе:
- Главную страницу с кратким описанием возможностей платформы.
- Профиль, с возможностью смены имени пользователя, даты рождения, аватарки и пароля.
- Просмотр перечня доступных курсов, с возможностью поиска, фильтрации, сортировки и пагинации.
- Просмотр детальной информации о курсе и темах с теорией и практикой.
- Возможность создавать, изменять и удалять собственные курсы, темы и упражнения.
- Прохождение курсов, сбор статистики пользователей и отображение прогресса.
- Модерация черновиков курсов перед публикацией.
Что уже готово
Разработка в одиночку требует немало времени и усилий, но несмотря на это, уже есть чем поделиться.
Backend
Можно сказать, что серверная сторона готова для MVP, а именно:
- Хранение пользователей и сессий, возможность регистрации и входа.
- Спроектирована и реализована гибкая структура хранения курсов, тем, этапов и упражнений.
- Поддерживаются разные типы упражнений: от простого вопроса-ответа до интерактивных диаграмм.
- Учтены сценарии для авторов и учеников: система валидирует данные, хранит прогресс, ошибки и этапы.
- Добавлены механизмы черновиков, публикации изменений и логика пересчёта прогресса при изменении курса.
- Используются контейнеры Docker для изоляции и удобного деплоя.
Однако, серверная сторона все еще нуждается в тестировании, проверки множества кейсов и правки недочетов.
Дизайн
- Нарисована главная страница платформы CodeEngine. Экран приветствия как и большинство страниц выдержаны в спокойных сиренево-фиолетовых тонах, задающих дружелюбное и сосредоточенное настроение. В центре - название проекта с логотипом в виде шестеренки, символизирующей движение, механизмы обучения и постоянное развитие.
- Девиз "Начни свой путь из подмастерья к мастерству" - подчёркивает, что каждый может пройти путь роста, начиная с основ и продвигаясь к профессиональному уровню.
- Дополняется все вдохновляющей цитатой Бенджамина Франклина "Инвестиции в знания приносят самые высокие доходы", как бы намекая пользователям, что обучение не пустая трата времени, а вклад в будущее.
- Имеется дизайн форм входа и регистрации.
- Навигационное меню, доступное на любой странице платформы помимо главной.
- Профиль пользователя, с возможностью сброса пароля, смены имени, даты рождения и аватарки.
- Страница со списком курсов, на которой представлен перечень курсов с возможностью поиска, фильтрации и сортировки, также чтобы не переполнять страницу множеством данных имеется пагинация.
- Детальная страница курса, на которой пользователи увидят более подробную информацию о курсе, включая: описание, список тем, отзывы и другое.
- Детальная страница темы, содержащая в себе блоки с теорией, практикой и обсуждениями.
- На детальной странице курса и темы отображены переключатели для авторов и администрации: Обзор <-> Разработчик, чтобы авторы своих курсов и администрация могли переключаться между редактором курса (черновик) и видом который отображается обычному пользователю (опубликованная версия).
Frontend
- Главная страница.
- Возможность входа и регистрации.
- Профиль пользователя с функционалом смены имени, даты рождения и пароля.
- Навигационное меню.
- Список курсов, с функционалом поиска, фильтрации, сортировки и пагинации.
Как можно заметить, наименее развитая сторона проекта - Frontend, она требует не мало времени и внимания с моей стороны как backend разработчика. Работа разделена на этапы, первым делом разрабатывался backend, после чего сейчас идет доработка дизайна в Figma, и на конец настанет очередь frontend.
Что осталось
Backend
Хоть и было сказано, что Backend закончен, определенно будут правки и доработки логики при проверке на реальной активности пользователей. Во избежание будущих проблем я также реализую ограничение кол-ва запросов на сервер, для DDoS-атак и потенциальных ошибок сервера.
Дизайн
- Конструктор упражнений. Довольно сложный этап, ведь требуется для каждого типа упражнения нарисовать свой уникальный редактор.
- Доработка страницы создания курса и темы, некоторые элементы отображены неверно и требуют доработки.
- На детальной странице курса требуется для администратора добавить кнопки одобрения или отказа в публикации курса, с возможностью указания причины возвращения на доработку.
- Нарисовать модальное окно для завершения темы, чтобы по прохождении поздравить пользователя с успехом.
Frontend
- Подтверждение регистрации вводом кода приходящим на почту пользователю.
- Установка и изменение аватарки пользователя.
- На странице со списком курсов требуется обновить отображения типов курса, ранее тип мог быть один, сейчас же можно выбрать несколько.
- Детальная страница курса и темы с отображением прогресса по темам и этапам.
- Страницы создания/изменения курса и темы.
- Текстовый редактор для редактирования теоретической части тем.
- Конструктор упражнений, которым легко и интуитивно понятно пользоваться.
- Модерация курсов, показ версий черновика и опубликованной. Возможность администраторам одобрять или отклонять публикацию курса.
- Адаптация элементов под разные устройства
Что нас ждет в будущем?
После выхода первой версии MVP начнется сбор обратной связи от пользователей, именно в этот момент потребуется ваша помощь в проверке созданного продукта, у вас появится возможность сообщить об ошибках, предложить идеи или высказать критику в сторону проекта. Не исключено также что будет выпущена реклама для привлечения активности и сбора статистики.
До публикации MVP я собираюсь создать свой собственный курс, который вы сможете пройти, тем самым протестировав функционал. На данный момент я также продумываю, как в первой версии будет раздаваться авторство пользователям, скорее всего я добавлю кнопку в профиле "Стать автором", где вас будет ждать опрос, целью которого является сбор сведений о желании стать автором и создать собственный курс, после чего спустя какое-то время я проверю подобные заявки и выдам авторство всем желающим, чтобы вы смогли испробовать возможности и удобства редактора курсов. Для вас это уникальная возможность претендовать на авторство на раннем этапе разработки, ведь к моменту релиза эта возможность может станет платной.
Всех карт раскрывать не буду, но сейчас я предоставлю то, что может ожидать вас в будущем:
- Рейтинговые группы - группы пользователей создаваемые авторами платформы, на основе их собственных курсов, проходя которые ученики зарабатывают баллы. По закрытии рейтинговой группы, ученики занявшие призовые позиции в топе или же получившие определенное кол-во баллов, получают награды, которые выдаются и настраиваются автором группы.
- Возможность монетизировать собственные курсы, выставляя цену на конкретный курс или давая возможность покупки подписки на все курсы автора.
- Прокачка в дереве навыков. Авторы курсов смогут задавать на темы/упражнения определенные очки навыков, которые будут распределяться по ветвям в дереве отображая статистику, успехи и уровень мастерства ученика.
- Статистика для авторов и учеников. Ученики смогут видеть графики своего прогресса, сколько было совершено ошибок, на какой теме, будет показано кол-во успешно завершенных курсов/тем/упражнений. Авторы смогут видеть где ученики чаще всего совершают ошибки, сколько учеников завершили курс, прошли тему или упражнение.
- Система уровней. Благодаря которой, пользователи смогут прокачивать собственный уровень поднимаясь в рейтингах платформы.
- Достижения. Ученики и авторы смогут за определенные действия получать достижения в свой профиль, которые будут отображать уровень опыта или же просто восхищать людей, которые посетят профиль человека. Например, за выполнение 100 упражнений будет получено достижение "Сотня знаний".
- Внутренняя валюта, с помощью которой можно будет покупать: подсказки для прохождения упражнений, возможность разбора правильного ответа упражнения, персонализацию для оформления платформы или профиля, дополнительные курсы или темы, открытие секретных заданий и другое.
- Ежедневные задания, которые генерируются каждый день сбрасывая прогресс предыдущих, и выполняя которые пользователи смогу зарабатывать внутреннюю валюту или другие награды.
- Для авторов появится возможность импорта/экспорта упражнений из других образовательных платформ.
- История изменения курса, чтобы администраторам было проще замечать последние изменения перед публикацией новой версии курса.
- Зависимость тем. Ученик не сможет продвинутся к следующей теме пока не пройдет предыдущую.
- Уведомления. Авторы курса смогут видеть уведомления о том, что кто-то купил курс, прошел его или же, что модерация одобрила публикацию черновика. Ученики в свою очередь смогут наблюдать уведомления о завершении рейтинговых групп, начислении наград, получении достижений или прокачки навыков.
Это и многое другое уже давно сидит у меня в голове, однако все следует делать по порядку, ведь хаос идей без дисциплины - это просто шум, а не созидание.
Итоги:
В этой статье я не показал наработки, достаточно скриншотов или не детализировал какие-то конкретные составляющие, пускай сохранится некая интрига, я хотел вас ознакомить с общей информацией того, что уже готово, над чем я работаю сейчас, что предстоит сделать и что будет в будущем после выхода MVP.
Также сообщаю, что у меня есть Telegram канал, куда я публикую обновления о ходе разработки, делюсь своими мыслями и промежуточными результатами - https://t.me/+9NhB_D91XblkNjcy
Благодарю за внимание!
Контактные данные
Почта: codeengine.official@gmail.com
Telegram: @Claymore23