# Курсовой проект Дорабатываем курсовой проект за 3-й курс. В рамках этого курсового нужно сделать: 1. Инструкция по развертыванию инфраструктуры (DevOps) - Установка сервера MySql Расписать какие есть варианты (локальная железка или виртуальный сервер). Выбрать один из вариантов и обосновать его. Написать инструкцию по развёртыванию выбранного варианта - инструкция по настройке подключения десктопного приложения к базе данных (скорее всего придется вынести строку подключения по внешний файл настроек) - у кого есть API: написать инструкцию по развертыванию на выбранном сервере 1. Обеспечение безопасности - в десктопном приложении сдалать авторизацию по ролям (админ/простой пользователь) - скрыть удаление/редактирование для простых пользователей 1. Обеспечение качества - разработайте тестовые сценарии - реализуйте модульные тесты по разработанным тестовым сценариям ## Важно!!! USE-case и ER диаграммы рисуются для всей предметной области. ## Методические рекомендации ### Общие положения Курсовой проект выполняется в виде __приватного__ репозитория на сервере [kolei.ru](https://kolei.ru) или публичного репозитория на общедоступном сервере контроля версий (github, gitlab...). Пояснительная записка располагается в файле `readme.md` и, соответственно, должна быть написана в формате *MarkDown*. Тема курсового проекта выбирается из списка, либо, по желанию студента. ### Требования к структуре курсового проекта * титульный лист. * содержание; * введение, в котором раскрываются актуальность и значение темы, формулируются цели и задачи работы, объект, предмет и методы исследования; * теоретическая часть, в которой содержатся теоретические основы разрабатываемой темы: - разработать UseCase-диаграмму для основных пользователей системы. - полную диаграмму в формате PDF положить в репозиторий - "свой" кусок картинкой прицепить к пояснительной записке (картинки в *MarkDown* внедряются разметкой: `![](<имя картинки с относительным путём в вашем репозитории>)`). Например, все свои ресурсы вы храните в подкаталоге `src`, тогда для картинки с названием `erd.png` команда будет выглядеть так: `![ER-диаграмма](./src/erd.png)` - разработать спецификацию к UseCase (к 3-м самым важным прецедентам). Формат **MarkDown** - разработать диаграмму последовательности для одного прецедента (в формате PDF) - проектирование ERD. Необходимо спроектировать максимально полную ERD для предметной области. Обязательна 3 нормальная форма с обеспечением ссылочной целостности. - полную диаграмму в формате PDF положить в репозиторий - "свой" кусок картинкой прицепить к пояснительной записке - разработать словарь данных (MarkDown). * практическая часть, которая состоит из проектирования, описания его реализации - база данных (MYSQL): * создание DDL-скрипта для базы данных. - разработка (C#) * отображение основного списка товаров/услуг с: - условной раскраской (по доступности/цене... уточнить у преподавателя); - выводом изображений - сортировкой (уточнить у преподавателя) - фильтрацией (по справочному полю) - поиском (по нескольким полям) - вычисляемыми полями (по связям) - счетчиками общего количества записей и отображаемых Пример разметки "списком" есть [тут](https://github.com/kolei/de) все действия должны быть "живые", т.е. для фильтрации и поиска не нужно нажимать каких-то специальных кнопок. * добавление, удаление, редактирование записей списка товаров/услуг в отдельных модальных окнах, где это возможно. Если товар уже продавали (услугу оказывали), то выводить уведомление о невозможности удаления. * отображение дополнительного списка (продажи/оказанные услуги) * реализовать API для базы данных - разработка (мобильное или WEB приложение) * реализовать приложение для записи на услугу/заказ товара - тестирование * разработать библиотеку классов (реализовать в ней метод для расчета вычисляемого поля в основной таблице) * разработать модульные тесты для метода из библиотеки классов (не менее 10) * разработка тестовых сценариев для удаления товара/услуги (не менее 5) * интеграционные тесты для АПИ * для тех, кто делает веб-приложение можно вместо модульных тестов сделать функциональные - запуск в контейнере - база данных - апи - веб-приложение (у кого есть) * заключение, в котором содержатся выводы и рекомендации относительно возможностей практического применения полученных результатов;