kp2.md 9.9 KB

Курсовой проект

Дорабатываем курсовой проект за 3-й курс. В рамках этого курсового нужно сделать:

  1. Инструкция по развертыванию инфраструктуры (DevOps)

    • Установка сервера MySql

      Расписать какие есть варианты (локальная железка или виртуальный сервер). Выбрать один из вариантов и обосновать его.

      Написать инструкцию по развёртыванию выбранного варианта

    • инструкция по настройке подключения десктопного приложения к базе данных (скорее всего придется вынести строку подключения по внешний файл настроек)

    • у кого есть API: написать инструкцию по развертыванию на выбранном сервере

  2. Обеспечение безопасности

    • в десктопном приложении сдалать авторизацию по ролям (админ/простой пользователь)
    • скрыть удаление/редактирование для простых пользователей
  3. Обеспечение качества

    • разработайте тестовые сценарии
    • реализуйте модульные тесты по разработанным тестовым сценариям

Важно!!!

USE-case и ER диаграммы рисуются для всей предметной области.

Методические рекомендации

Общие положения

Курсовой проект выполняется в виде приватного репозитория на сервере kolei.ru или публичного репозитория на общедоступном сервере контроля версий (github, gitlab...). Пояснительная записка располагается в файле readme.md и, соответственно, должна быть написана в формате MarkDown.

Тема курсового проекта выбирается из списка, либо, по желанию студента.

Требования к структуре курсового проекта

  • титульный лист.
  • содержание;
  • введение, в котором раскрываются актуальность и значение темы, формулируются цели и задачи работы, объект, предмет и методы исследования;
  • теоретическая часть, в которой содержатся теоретические основы разрабатываемой темы:
    • разработать UseCase-диаграмму для основных пользователей системы.
      • полную диаграмму в формате PDF положить в репозиторий
      • "свой" кусок картинкой прицепить к пояснительной записке (картинки в MarkDown внедряются разметкой: ![<alt>](<имя картинки с относительным путём в вашем репозитории>)). Например, все свои ресурсы вы храните в подкаталоге src, тогда для картинки с названием erd.png команда будет выглядеть так: ![ER-диаграмма](./src/erd.png)
    • разработать спецификацию к UseCase (к 3-м самым важным прецедентам). Формат MarkDown
    • разработать диаграмму последовательности для одного прецедента (в формате PDF)
    • проектирование ERD. Необходимо спроектировать максимально полную ERD для предметной области. Обязательна 3 нормальная форма с обеспечением ссылочной целостности.
      • полную диаграмму в формате PDF положить в репозиторий
      • "свой" кусок картинкой прицепить к пояснительной записке
    • разработать словарь данных (MarkDown).
  • практическая часть, которая состоит из проектирования, описания его реализации

    • база данных (MYSQL):

      • создание DDL-скрипта для базы данных.
    • разработка (C#)

      • отображение основного списка товаров/услуг с:

        • условной раскраской (по доступности/цене... уточнить у преподавателя);
        • выводом изображений
        • сортировкой (уточнить у преподавателя)
        • фильтрацией (по справочному полю)
        • поиском (по нескольким полям)
        • вычисляемыми полями (по связям)
        • счетчиками общего количества записей и отображаемых

        Пример разметки "списком" есть тут

        все действия должны быть "живые", т.е. для фильтрации и поиска не нужно нажимать каких-то специальных кнопок.

      • добавление, удаление, редактирование записей списка товаров/услуг в отдельных модальных окнах, где это возможно. Если товар уже продавали (услугу оказывали), то выводить уведомление о невозможности удаления.

      • отображение дополнительного списка (продажи/оказанные услуги)

      • реализовать API для базы данных

    • разработка (мобильное или WEB приложение)

      • реализовать приложение для записи на услугу/заказ товара
    • тестирование

      • разработать библиотеку классов (реализовать в ней метод для расчета вычисляемого поля в основной таблице)
      • разработать модульные тесты для метода из библиотеки классов (не менее 10)
      • разработка тестовых сценариев для удаления товара/услуги (не менее 5)
      • интеграционные тесты для АПИ
      • для тех, кто делает веб-приложение можно вместо модульных тестов сделать функциональные
    • запуск в контейнере

      • база данных
      • апи
      • веб-приложение (у кого есть)
  • заключение, в котором содержатся выводы и рекомендации относительно возможностей практического применения полученных результатов;