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