Веб-приложение для корпоративного обучения сотрудников (LMS) с каталогом курсов, интерактивными тестами, аналитикой успеваемости и встроенными ML-моделями для оценки рисков отсева студентов.
Данный проект был изначально разработан в качестве дипломной работы (выпускной квалификационной работы). Цель проекта: разработать платформу для корпоративного обучения с нуля, спроектировать архитектуру базы данных, реализовать клиентскую и серверную части, а также интегрировать модели машинного обучения для анализа успеваемости.
Инстанс развернут по адресу: https://learning.leenzery.dev
Обратите внимание: база данных на демо-стенде автоматически сбрасывается и перезаполняется начальными данными каждые 30 минут.
| Роль | Пароль | |
|---|---|---|
| Администратор | 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.
Самый простой способ поднять весь стек (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
Требования: .NET 10 SDK, Node.js 20+, PostgreSQL.
-
Бэкенд:
cd LearningPlatform.Web dotnet runAPI запустится на
http://localhost:5109(Swagger:/swagger). При первом запуске автоматически накатываются миграции и сидятся тестовые данные. -
Фронтенд:
cd LearningPlatform.Client npm install npm run devКлиент запустится на
http://localhost:5173.
Запуск unit-тестов бэкенда:
dotnet test