# Курсовой проект Курсовой проект служит для закрепления и систематизации знаний и умений **ПМ.05**. Разделы курсового проекта соответстсвуют демо-экзамену компетенции "Программные решения для бизнеса" ## Темы курсовых проектов 1. Автосервис. Подсистема работы с клиентами. (Батанов) 2. Автосервис. Подсистема работы с сотрудниками. (Галимулин) 3. Автосервис. Подсистема работы с услугами. (Егоров) 4. Автосервис. Подсистема для управления компанией. (Журавлёв) 5. Школа иностранных языков. Подсистема работы с клиентами. (Иванков) 6. Школа иностранных языков. Подсистема работы с сотрудниками. (Изергин) 7. Школа иностранных языков. Подсистема работы с услугами. (Клёнов) 8. Школа иностранных языков. Подсистема для управления компанией. (Логинов) 9. Фитнесс-центр. Подсистема работы с клиентами. (Минин) 10. Фитнесс-центр. Подсистема работы с сотрудниками. (Михайлов) 11. Фитнесс-центр. Подсистема работы с услугами. (Неметжанова) 12. Фитнесс-центр. Подсистема работы с товарами. (Орифшоев) 13. Фитнесс-центр. Подсистема для управления компанией. (Пенкин) 14. Мини-пекарня. Подсистема работы с клиентами. (Решетов) 15. Мини-пекарня. Подсистема работы с сотрудниками. (Садовин) 16. Мини-пекарня. Подсистема работы с услугами. (Светлаков) 17. Мини-пекарня. Подсистема работы с товарами. (Смирнов) 18. Мини-пекарня. Подсистема для управления компанией. (Стариков) 19. Интернет-провайдер. Подсистема работы с клиентами. (Топорова) 20. Интернет-провайдер. Подсистема работы с сотрудниками. (Троегубов) 21. Интернет-провайдер. Подсистема работы с услугами. (Чулков) 22. Интернет-провайдер. Подсистема работы с товарами. (Новоселов) 23. Интернет-провайдер. Подсистема для управления компанией. ## Важно!!! USE-case и ER диаграммы рисуются для всей предметной области. На этом этапе приветствуется командная работа. Для каджого глобального проекта будет создана своя база данных, в которой вы потом будете делать свою часть. ## Методические рекомендации ### Общие положения Курсовой проект выполняется в виде публичного репозитория на общедоступном сервере контроля версий (github, gitlab...). Пояснительная записка располагается в файле `readme.md` и, соответственно, должна быть написана в формате *MarkDown*. Тема курсового проекта выбирается из списка, либо, по желанию студента. ### Требования к структуре курсового проекта * титульный лист. Разметку HTML можно взять из этого репозитория; * содержание; * введение, в котором раскрываются актуальность и значение темы, формулируются цели и задачи работы, объект, предмет и методы исследования; * теоретическая часть, в которой содержатся теоретические основы разрабатываемой темы: - анализ предметной области: опрос, анкетирование (разработать как минимум одну анкету) - разработать UseCase-диаграмму для основных пользователей системы. - полную диаграмму в формате PDF положить в репозиторий - "свой" кусок картинкой прицепить к пояснительной записке - разработать спецификацию к UseCase (к 3 самым важным прецедентам). Формат PDF или MarkDown - для ЧЁТНЫХ номеров: разработать диаграмму состояний (в формате PDF) - для НЕЧЁТНЫХ номеров: разработать диаграмму последовательности (в формате PDF) - проектирование ERD. Необходимо спроектировать максимально полную ERD для предметной области. Обязательна 3 нормальная форма с обеспечением ссылочной целостности. - полную диаграмму в формате PDF положить в репозиторий - "свой" кусок картинкой прицепить к пояснительной записке - разработать словарь данных (MarkDown). * практическая часть, которая состоит из проектирования, описания его реализации - база данных (MSSQL): * создание базы данных. На этом этапе реализовать только основной функционал подсистемы (подойти к преподавателю и утвердить набор обязательных таблиц) * подготовить 3 файла с данными (в РАЗНЫХ форматах csv, txt, xls): 5 записей для справочников, 10 - для данных (список товаров/услуг/клиентов...). Для данных предусмотреть поле для изображения и, соответственно, каталог с изображениями. * импортировать данные в базу данных (в пояснительной записке привести SQL-команды, используемые при импорте) - разработка (C#) * отображение основного списка товаров/услуг с: - условной раскраской (по доступности/цене... уточнить у преподавателя); - выводом изображений - сортировкой (уточнить у преподавателя) - фильтрацией (по справочному полю) - поиском (по нескольким полям) - вычисляемыми полями (по связям) - счетчиками общего количества записей и отображаемых все действия должны быть "живые", т.е. для фильтрации и поиска не нужно нажимать каких-то специальных кнопок. * режим администртора * добавление, удаление, редактирование записей списка товаров/услуг (только в режиме администратора) в отдельных модальных окнах, где это возможно. Если товар уже продавали (услугу оказывали), то выводить уведомление о невозможности удаления. * отображение дополнительного списка (продажи/оказанные услуги) - тестирование * разработать библиотеку классов (реализовать в ней метод для расчета вычисляемого поля в основной таблице) * разработать модульные тесты для метода из библиотеки классов (не менее 10) * разработка тестовых сценариев для удаления товара/услуги (не менее 5) - XML-комментарии. Не очевидный код (разработка и тестирование) должен содержать комментарии * заключение, в котором содержатся выводы и рекомендации относительно возможностей практического применения полученных результатов;