Перейти к содержанию

Производственная практика

ПМ.01 Разработка модулей программного обеспечения для компьютерных систем

Итоговая работа практики: система мониторинга и аналитики пользовательской активности.

Студент разрабатывает backend-приложение на C# / ASP.NET Core, подключает базу данных через Entity Framework Core, реализует REST API, JWT-авторизацию, роли пользователей, генерацию событий, аналитический модуль, кэширование, логирование и выгрузку отчётов.


Параметр Значение
Вид практики Производственная практика
Профессиональный модуль ПМ.01 Разработка модулей программного обеспечения для компьютерных систем
Итоговый продукт REST API для мониторинга и аналитики активности пользователей
Уровень сложности Повышенный: слои, БД, авторизация, роли, паттерны, аналитика, отчёты
Язык и платформа C#, .NET 8, ASP.NET Core Web API
Работа с БД Entity Framework Core; SQLite для учебного стенда, PostgreSQL/MS SQL/MySQL как варианты замены
Минимальный результат Запускаемое API, миграции БД, CRUD событий, JWT, роли, генератор нагрузки, кэш аналитики, CSV-отчёт
Формат материала MkDocs: Markdown-страницы, навигация, кодовые примеры

Как работать с материалом

Материал построен как производственная практика, а не как справочник по синтаксису C#. Это значит, что каждый раздел нужно читать в связке с итоговым проектом. Сначала студент понимает, какую часть системы он сейчас строит, затем переносит код в проект, запускает приложение и проверяет результат через Swagger, HTTP-запрос или базу данных.

Рекомендуемый порядок действий в каждом практическом этапе:

  1. Прочитать цель этапа и понять, какая возможность появится в приложении.
  2. Посмотреть объяснение и определить, в какой слой проекта относится новый код.
  3. Создать или изменить указанные файлы.
  4. Выполнить команду сборки или запуска.
  5. Проверить результат по описанному сценарию.
  6. Зафиксировать, что изменилось в проекте: новая таблица, новый эндпоинт, новый сервис, новая роль или новый отчёт.

Если код не запускается, не нужно сразу переписывать весь этап. Сначала проверьте три вещи: правильный проект выбран для файла, подключены ли using, зарегистрирован ли сервис в Program.cs.

Смысл итогового проекта

Система мониторинга активности отвечает на простой производственный вопрос: что пользователи делают в системе и какие выводы можно сделать из этих действий.

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

В этой практике событие ActivityEvent является учебной универсальной сущностью. В индивидуальном варианте её можно заменить на заказ, обращение, посещение, заявку, ремонт, рейс или любую другую предметную запись.

Мини-словарь практики

Термин Простое объяснение
Слой приложения Часть проекта с отдельной ответственностью: API, бизнес-логика, база данных или доменная модель
REST API Способ дать внешним клиентам доступ к данным через HTTP-запросы
DTO Объект для передачи данных наружу или внутрь API без раскрытия всей EF-модели
Entity Класс, который соответствует таблице или важной предметной сущности
Repository Класс, который скрывает запросы к базе данных
Service Layer Класс, где выполняется сценарий работы приложения
JWT Подписанный токен, подтверждающий личность и роль пользователя
Миграция Версионированное изменение структуры базы данных
Кэш Временное хранение результата, чтобы не пересчитывать его каждый раз
Отчёт Выгрузка данных в удобном для анализа формате, например CSV

Цель практики

Сформировать навыки разработки программных модулей для компьютерных систем на примере промышленно приближенного backend-приложения: проектирование архитектуры, реализация бизнес-логики, работа с базой данных, защита API, обработка данных, аналитика и подготовка отчётов.

Задачи

  1. Создать ASP.NET Core Web API и разнести код по слоям Presentation, Application, Domain, Infrastructure.
  2. Описать предметную модель: пользователи, роли, события активности.
  3. Подключить EF Core и выполнить миграции.
  4. Реализовать Repository и Service Layer.
  5. Создать REST API для регистрации, просмотра, фильтрации и удаления событий.
  6. Добавить JWT-аутентификацию и разграничение ролей.
  7. Реализовать генератор событий для имитации нагрузки.
  8. Настроить логирование важных операций.
  9. Добавить кэширование аналитических запросов.
  10. Создать аналитический модуль и выгрузку CSV-отчётов.
  11. Адаптировать проект под выбранную предметную область.

Итоговая система

Система ActivityMonitoring принимает события пользовательской активности:

  • вход в систему;
  • просмотр страницы;
  • создание или изменение данных;
  • ошибка действия;
  • выход из системы.

На основе событий API строит аналитику:

  • количество событий за период;
  • активность по пользователям;
  • распределение по типам событий;
  • последние критичные события;
  • выгрузка CSV-отчёта.

Рекомендуемый порядок работы

Блок Раздел Что получить
Теория Архитектура, REST, EF Core, JWT, паттерны, кэш, логи, отчёты Понимание решений и мини-примеры кода
Практика 8 пошаговых этапов Единое запускаемое приложение
Адаптация 30 предметных областей и задания на модификацию Индивидуальный вариант проекта

Проверка результата

К концу практики студент должен показать:

  1. Репозиторий с исходным кодом.
  2. Инструкцию запуска.
  3. Выполненные миграции или созданную БД.
  4. Набор REST-запросов для демонстрации.
  5. JWT-вход для ролей Admin, Analyst, Operator.
  6. CSV-отчёт, сформированный приложением.
  7. Краткое описание адаптации под предметную область.