Skip to content

Repository files navigation

Learning Platform

Веб-приложение для корпоративного обучения сотрудников (LMS) с каталогом курсов, интерактивными тестами, аналитикой успеваемости и встроенными ML-моделями для оценки рисков отсева студентов.

.NET 10 Vue 3 TypeScript PostgreSQL Docker


О проекте

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


Онлайн демо

Инстанс развернут по адресу: https://learning.leenzery.dev

Обратите внимание: база данных на демо-стенде автоматически сбрасывается и перезаполняется начальными данными каждые 30 минут.

Тестовые аккаунты

Роль Email Пароль
Администратор admin@learningplatform.local Admin123!
Сотрудник user1@company.local Password123!

Что внутри

  • Архитектура: Clean Architecture (разбиение на Core, Application, Infrastructure, ML, Web) + Repository / Unit of Work.
  • Машинное обучение (ML.NET):
    • Прогнозирование вероятности успешного прохождения курса студентом (бинарная классификация на базе прогресса, времени и оценок за тесты).
    • Персональные рекомендации курсов на базе Matrix Factorization.
    • Анализ тональности отзывов к курсам.
  • Авторизация и роли: ASP.NET Core Identity + JWT. Реализован тихий рефреш токенов (Silent Refresh через HttpOnly cookie) и очередь запросов на клиенте при истечении токена.
  • Редактор контента: WYSIWYG / Markdown редактор (Milkdown Crepe) с прямой загрузкой изображений на сервер.
  • Интерфейс: Vue 3 (Composition API, <script setup>), TypeScript, Pinia, Tailwind CSS и дизайн-система Microsoft Fluent UI. Поддерживается темная и светлая темы.
  • Тесты: Unit-тесты для валидаторов и сервисов на xUnit + Moq + FluentAssertions (27 тестов).

Стек технологий

  • Backend: C# 13, .NET 10, ASP.NET Core Web API, Entity Framework Core, PostgreSQL, ML.NET, FluentValidation.
  • Frontend: Vue 3, TypeScript, Vite, Pinia, Vue Router, Tailwind CSS, Fluent UI Web Components, Milkdown.
  • DevOps: Docker, Docker Compose, Nginx.
  • Тестирование: xUnit, Moq, FluentAssertions.

Запуск проекта

Вариант 1: Docker Compose

Самый простой способ поднять весь стек (PostgreSQL + Backend + Frontend):

git clone https://github.com/LeenzeryDev/LearningPlatform.git
cd LearningPlatform

docker compose up --build
  • Веб-интерфейс: http://localhost:8088
  • Swagger API: http://localhost:8088/api

Вариант 2: Локальная разработка

Требования: .NET 10 SDK, Node.js 20+, PostgreSQL.

  1. Бэкенд:

    cd LearningPlatform.Web
    dotnet run

    API запустится на http://localhost:5109 (Swagger: /swagger). При первом запуске автоматически накатываются миграции и сидятся тестовые данные.

  2. Фронтенд:

    cd LearningPlatform.Client
    npm install
    npm run dev

    Клиент запустится на http://localhost:5173.


Тестирование

Запуск unit-тестов бэкенда:

dotnet test

Лицензия

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages