Coder Social home page Coder Social logo

heardline / netlearn Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 878 KB

LMS-платформа обучения в виде приключения и элементами ММО. С квестами, игровой валютой, турнирами и магазином

License: MIT License

Python 100.00%
django django-rest-framework lms microservices python vuejs

netlearn's Introduction

NetLearn

NetLearn – это платформа для обучения. Она сочетает в себе академическое образование с миром геймификации, превращая процесс обучения в приключение или квест. С помощью NetLearn студенты могут зарабатывать внутриигровую валюту, получать награды и достижения, а также применять креативные способы для улучшения своего обучения.

Основные фичи:

  • Roadmap: Каждый курс представляет собой путь студента. Этот путь разбит на модули, каждый из которых состоит из лекций, материалов, квестов и мастер-классов. На пути будут условия выполнения.
  • Внутриигровая валюта: За выполнение задач студенты получают монеты, которые могут быть потрачены на различные бонусы.
  • Магазин: Здесь студенты могут потратить свою внутриигровую валюту на подсказки, ответы к заданиям, уникальные визуальные стили и даже прямое взаимодействие с преподавателем. Основная задача мотивировать студент на решение задач и участие в ивентах.
  • Система уровней и достижений: С каждым новым уровнем сложности курса или количество пройденных заданий, студенты повышают свой уровень, что может открывать новые возможности или бонусы.
  • Турниры и марафоны: Периодические события, где студенты могут соревноваться друг с другом, демонстрируя свои знания и навыки, ради дополнительных наград.
  • Рейтинг: Здесь будет представлен рейтинг активных студентов. В дальнейшем компания может объявить конкурс или дополнительные призы за активность.

Прототипы:

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

Архитектура

Компоненты

Используется микросервисная архитектура, что обеспечивает модульность и независимость компонентов.

Core - ядро приложения. Отвечает за авторизацию и управление профилями студентов.

Функционал:

  • Регистрация
  • Вход/Выход (OAuth)
  • Восстановление пароля
  • Администратирование
  • Управление профилями пользователей. API Profile, хранение данных в БД и отслеживание прогресса.

Хранит персональную информацию пользователей. Может предоставлять API для доступа к профилям пользователей. Можно использовать OAuth или JWT для аутентификации и авторизации. Использует базу данных для хранения учетных данных пользователей.

Course - Сервис обучения. Отвечает за курсы, уроки, квесты и т.д.

Надо будет детализировать

Community - Сервис чатов, комментариев и обратной связи от преподавателей

Отвечает за обмен сообщениями между пользователями в реальном времени. Может использовать WebSockets для обмена сообщениями. Хранит историю сообщений в БД.

Billing - Сервис платежей

Отвечает за обработку платежей и подписок. Интегрируется с платежными системами, такими как TinkoffPay или SberPay.

Analytics - Сервис аналитики и отчетности

AnalyticsService анализирует данные от всех сервисов через RabbitMQ.

API Gateway

Обеспечивает единый точку входа и маршрутизирует запросы из фронта.


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.