NetLearn – это платформа для обучения. Она сочетает в себе академическое образование с миром геймификации, превращая процесс обучения в приключение или квест. С помощью NetLearn студенты могут зарабатывать внутриигровую валюту, получать награды и достижения, а также применять креативные способы для улучшения своего обучения.
- Roadmap: Каждый курс представляет собой путь студента. Этот путь разбит на модули, каждый из которых состоит из лекций, материалов, квестов и мастер-классов. На пути будут условия выполнения.
- Внутриигровая валюта: За выполнение задач студенты получают монеты, которые могут быть потрачены на различные бонусы.
- Магазин: Здесь студенты могут потратить свою внутриигровую валюту на подсказки, ответы к заданиям, уникальные визуальные стили и даже прямое взаимодействие с преподавателем. Основная задача мотивировать студент на решение задач и участие в ивентах.
- Система уровней и достижений: С каждым новым уровнем сложности курса или количество пройденных заданий, студенты повышают свой уровень, что может открывать новые возможности или бонусы.
- Турниры и марафоны: Периодические события, где студенты могут соревноваться друг с другом, демонстрируя свои знания и навыки, ради дополнительных наград.
- Рейтинг: Здесь будет представлен рейтинг активных студентов. В дальнейшем компания может объявить конкурс или дополнительные призы за активность.
- Магазин:
-
- За игровую валюту пользователь может покупать подсказки или ответ на задание.
-
- Дополнительные материалы и курсы.
-
- Темы оформления профиля и gif аватарки.
-
- Ранний доступ к материалам.
-
- Личные консультации.
- Система рекомендаций
- Использовать LLM(GPT) для оценки заданий и решений тестов для определения слабых мест (пилот)
- ...
- Как новый пользователь, я хочу легко зарегистрироваться и создать профиль, чтобы начать свое обучение.
- Как студент, я хочу настроить свой профиль, добавив аватар и описание.
- Как студент, я хочу выбрать курс, прочитать его описание и этапы, далее оплатить и получить доступ.
- Как студент, я хочу видеть свой прогресс в виде карты или таблицы пройденных этапов.
- Как студент, я хочу зарабатывать монеты за выполнение квестов, активное участие в мастер-классах и турнирах.
- Как студент, я хочу тратить свои монеты на полезные ресурсы в магазине и ответы на тестовые задания.
- Как студент, я хочу общаться с другими студентами, обсуждая материалы курса.
- Как студент, я хочу получать обратную связь от преподавателя.
- Как преподаватель, я хочу иметь возможность создавать модули и редактировать их.
- Как преподаватель, я хочу иметь возможность видеть прогресс каждого студента и их ответы.
- Как преподаватель, я хочу иметь возможность писать и отвечать студентам.
- Курс (Course): Главный образовательный блок, включающий в себя модули.
-
- Блок (Block): Составная часть курса, содержащая в себе один или несколько уроков, которые должен пройти студент. Блоки могут быть связаны между собой и иметь условия доступа.
-
-
- Урок (Lesson): Часть блока. Может содержать в себе лекцию из медиа, материал.
-
-
-
- Квест (Quest): Часть блока. Содержит в себе практическое задание, которое должен решить студент и отправить. Преподаватель должен будет оценить.
-
-
-
- Турнир (tournament): Часть блока. Представляет собой тестовое задание, где студент решает задачу и отправляет результат. Преподаватель или несколько оценивают решения и определяют рейтинг. Можно также дать возможность студентам голосовать за лучшие решения.
-
- Студент должен завершить все уроки в модуле, чтобы завершить модуль.
- Блоки могут быть связаны линейно или иметь условные переходы.
- ...
- Микросервисная архитектура с монолитным frontend.
- Бэкенд: Django + REST Framework
- БД: PostgreSQL
- Celery + RabbitMQ как брокер сообщений для Celery
- Фронтдент: Vue.JS
- Redux для управления состоянием. Axios для выполнения HTTP. Rayna UI - готовая дизайн-система
- Docker + GitHub Actions. Деплой на Ubuntu
Используется микросервисная архитектура, что обеспечивает модульность и независимость компонентов.
Функционал:
- Регистрация
- Вход/Выход (OAuth)
- Восстановление пароля
- Администратирование
- Управление профилями пользователей. API Profile, хранение данных в БД и отслеживание прогресса.
Хранит персональную информацию пользователей. Может предоставлять API для доступа к профилям пользователей. Можно использовать OAuth или JWT для аутентификации и авторизации. Использует базу данных для хранения учетных данных пользователей.
Надо будет детализировать
Отвечает за обмен сообщениями между пользователями в реальном времени. Может использовать WebSockets для обмена сообщениями. Хранит историю сообщений в БД.
Отвечает за обработку платежей и подписок. Интегрируется с платежными системами, такими как TinkoffPay или SberPay.
AnalyticsService анализирует данные от всех сервисов через RabbitMQ.
Обеспечивает единый точку входа и маршрутизирует запросы из фронта.