Цифровой тьютор
Аналитическая платформа для дирекции университета с инструментами оценки усвоения материала студентами и рекомендациями по оптимизации учебного процесса
Оглавление
О проекте
Аналитическая платформа для дирекции УрФУ: собирает результаты тестов и экзаменов, показывает, где студенты справляются, а где буксуют, и подсказывает, что поменять в учебных программах.
До этого момента у дирекции не было единой системы — данные жили в отчётах отдельных факультетов, сравнивать было нечем, динамику по годам никто не видел.
Моя зона — backend: серверная часть, интеграция с ML-сервисом аналитики, работа с данными студентов. В команде три группы: бэкенд, ML и дизайн/фронтенд.
Ключевые возможности
Сбор и агрегация данных
Централизованная система сбора результатов обучения:
- Импорт результатов тестирований и экзаменов из различных источников
- Нормализация данных с разных факультетов и кафедр
- Хранение исторических данных для анализа динамики по годам
- API для интеграции с существующими системами университета
Аналитика усвоения материала
Инструменты для оценки эффективности учебного процесса:
- Визуализация статистики усвоения материала по курсам и темам
- Сравнение результатов между факультетами и группами
- Анализ динамики показателей от года к году
- Выявление проблемных тем с низкой успеваемостью
- Сравнение различных методик преподавания по результатам
ML-рекомендации для дирекции
Система рекомендаций на основе машинного обучения:
- Автоматическое выявление паттернов неуспеваемости
- Рекомендации по корректировке сложности учебных программ
- Предложения по перераспределению учебных часов между темами
- Прогнозирование проблемных областей в будущих семестрах
- Оценка влияния изменений в программах на результаты студентов
Дашборды для руководства
Интерактивные панели для принятия решений:
- Сводные дашборды с ключевыми метриками по университету
- Детализация по факультетам, кафедрам, курсам
- Построение пользовательских отчетов и графиков
- Экспорт данных для презентаций и отчетности
- Система фильтров по периодам, группам студентов, преподавателям
Архитектурные решения
Backend
Django-based архитектура:
- Импорт и нормализация данных из различных источников университета
- Хранение исторических данных о результатах студентов
- Агрегация и вычисление статистических метрик
- Интеграция с внешним ML-сервисом для аналитики и рекомендаций
Технологический стек:
- Django REST Framework для API
- PostgreSQL для хранения больших объемов исторических данных
- Redis для кэширования тяжелых аналитических запросов
- Celery для асинхронной обработки (импорт данных, построение отчетов)
Frontend
React-приложение с адаптивным интерфейсом (разработка отдельной командой):
- Панели управления для руководства университета
- Интерактивные дашборды с графиками и диаграммами
- Настраиваемые отчеты с фильтрами по факультетам, годам, курсам
- Визуализация динамики показателей и сравнительный анализ
Интеграция с ML-сервисом
Работа с аналитическим движком:
- Интеграция с внешним ML-сервисом для анализа паттернов успеваемости
- API для запроса рекомендаций по оптимизации учебных программ
- Кэширование результатов аналитики для быстрого доступа к частым запросам
- Обработка и форматирование рекомендаций для отображения в дашбордах
Технические вызовы и решения
Обработка больших объемов данных
Проблема: Необходимость хранить и анализировать результаты 10000+ студентов за несколько лет обучения с возможностью быстрого построения отчетов.
Решение:
- Денормализация часто запрашиваемых агрегатов для ускорения выборок
- Партиционирование таблиц PostgreSQL по годам обучения
- Построение индексов для типичных аналитических запросов (группировки по факультетам, курсам, периодам)
- Асинхронное предварительное вычисление популярных отчетов через Celery
Интеграция разнородных источников данных
Проблема: Данные о результатах студентов приходили из различных систем факультетов в разных форматах (Excel, CSV, API различных LMS).
Решение:
- Разработка набора адаптеров для импорта данных из разных источников
- Валидация и нормализация данных перед сохранением в БД
- Система логирования ошибок импорта для ручной проверки проблемных записей
- API для полуавтоматического импорта с предпросмотром и подтверждением
Производительность аналитических запросов
Проблема: Сложные аналитические запросы с группировками и агрегациями по миллионам записей приводили к таймаутам.
Решение:
- Материализованные представления (materialized views) для тяжелых агрегаций
- Агрессивное кэширование в Redis с TTL на основе частоты обновления данных
- Фоновая пересборка кэша после импорта новых данных
- Оптимизация запросов с использованием EXPLAIN ANALYZE для выявления узких мест
Результаты
Влияние на управление университетом
- Прозрачность: Дирекция получила единую систему для оценки эффективности учебного процесса вместо разрозненных отчетов с факультетов
- Данные для решений: ML-рекомендации помогли выявить проблемные курсы и темы, требующие пересмотра программ
- Сравнительный анализ: Возможность сравнивать результаты между факультетами и годами стала основой для best practices
- Оптимизация ресурсов: Система помогла определить, где нужно больше учебных часов или преподавательских ресурсов
Технические показатели
- Объем данных: Более 10 миллионов записей о результатах тестов и экзаменов
- Производительность: Построение сложных отчетов с агрегацией за несколько лет занимало менее 5 секунд благодаря кэшированию
- Надежность: 99.5% uptime в течение учебного года
- Скорость импорта: Обработка данных по 1000+ студентов за один импорт занимала менее 10 минут
Безопасность данных
- Аутентификация: JWT-токены с refresh-механизмом для сотрудников дирекции
- Авторизация: RBAC (Role-Based Access Control) с гранулированными правами доступа к данным разных факультетов
- Шифрование: TLS для всех соединений, защита персональных данных студентов в БД
- Соответствие требованиям: Защита персональных данных в соответствии с требованиями российского законодательства
Уроки
Materialized views в PostgreSQL плюс кэширование в Redis — даже сложные аналитические запросы по миллионам записей отвечают за секунды. Партиционирование по годам ускорило выборки с фильтрацией и упростило архивирование.
Главная боль — разнородные данные. У каждого факультета своя система учёта, своя структура. Пришлось собирать гибкие адаптеры с маппингом полей и детальным логированием. Первые версии аналитических запросов тормозили жестоко — помогло глубокое погружение в EXPLAIN ANALYZE, правильные индексы и денормализация агрегатов.
Отдельная тема — персональные данные студентов: шифрование чувствительных полей, логирование доступа, гранулированные права.
Итоги проекта
Запущен в УрФУ в 2020 году. 10 000+ студентов, 5+ факультетов, 50+ курсов — дирекция получила единую картинку вместо разрозненных отчётов.
После пилотного периода проект закрылся — приоритеты университета изменились. Но опыт работы с большими объёмами данных и оптимизацией PostgreSQL оказался полезным для следующих проектов.
Похожие материалы
Проекты с похожими технологиями и задачами
AI Builders: открытый учебник о LLM в backend и разобранные системы
Платформа на ai.potapov.me для инженеров, которые встраивают LLM в работающие системы. Открытый учебник на 10 частей и 58 глав, под ним разобранные системы с числами и списком пропусков. Бесплатно, без регистрации.
- Python
- FastAPI
- Django
- Pydantic
- Celery
- +4
Tech Path Finder
Платформа подготовки IT-специалистов: 65 курсов с квизами и три AI-тренажёра, где спорит автор PR, торгуется оппонент на переговорах и оценивается ответ на собеседовании
- Python
- FastAPI
- PostgreSQL
- Redis
- Kafka
- +6
RealAuto — диагностика и продажа проверенных автомобилей
Автомобильный маркетплейс с уникальной бизнес-моделью: независимая диагностика перед продажей. Автоматический парсинг объявлений с форумов BMW и других сообществ.
- Django
- Python
- PostgreSQL
- Celery
- Redis
- +2