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