Производственная практика
ПМ.01 Разработка программных модулей программного обеспечения для компьютерных систем
ПМ.02 Разработка и администрирование баз данных

Ссылка на Я.Диск с документами по ПП

Дата/Время проверки задания по ПП

Общее задание

Разработать информационную систему по выданной теме от руководителя производственной практики.
Информационная система должна состоять из приложения (технология WinForm или WPF в контексте платформы .Net Framework), написанного на языке программирования С# и базы данных в формате файла MS Access 2003/2007 или SQLite. Для разработки структуры БД, определения и выполнения запросов использовать только язык SQL. Для шифрования БД использовать пароль, длинна которго должна быть не менее 8 символов.

База данных

Необходимо продумать схему (структуру) проектируемой базы данных. Проектирование и наполнение БД не должно нарушать правила нормальных форм. В БД необходимо реализовать не менее 3-х сущностей (в соответствии с заданием по Вашему варианту). По необходимости, разрешается добавлять свои, новые сущности. Новые сущности должны дополнять уже существующие в БД и входить в общее представление полученного Вами варианта и задания в целом. В каждой сущности должны быть представлены атрибуты (столбцы), исходя из Вашего варианта. Обязательное наличие в каждой сущности первичного ключа. Для первичного ключа в каждой сущности можно использовать на выбор обычный тип данных integer или счетчик (автоинкремент). Так же, необходимо выделить связи между таблицами с помощью MS Access.
Все названия сущностей (таблиц) и атрибутов (столбцов) должны быть строго на иностранном языке. Использование транслита запрещается! Информация в самой БД может быть как на русском языке, так и на английском, в зависимости от полученной Вами темы по варианту. При использовании контрола DataGridView на всех формах не должно быть горизонтальной полосы прокрутки. Вертикальная полоса прокрутки допускается. При разаботки необходимо соблюдать единый интерфейс, размеры и оформление для каждой формы и приложения в целом.
Заполнить спроектированную базу данных реальными и уникальными данными, в количестве 15 записей в каждой таблице. Таблица учетных записей пользователей (users) разрешается записать не менее 5-ти уникальных записей, но она должна содержать информацию о двух обязательных пользователях
ФИО Логин Пароль Тип учетной записи
Иванов Иван Иванович admin root1234 Администратор
Петров Петр Петрович user user1234 Пользователь

Приложение

В приложении должно быть 9 форм:
  • 1 форма - главная форма приложения;
  • 2 форма - форма регистрации/добавления/изменения нового/существующего пользователя (два типа учетной записи - администратор и обычный пользователь);
  • 3 форма - форма авторизации пользователя в системе (два типа учетной записи - администратор и обычный пользователь);
  • 4 форма - форма добавления информации (все таблицы, кроме таблицы users);
  • 5 форма - форма удаления и редактирования информации (все таблицы, кроме таблицы users);
  • 6 форма - форма для оформления/выдачи/оказания какой-либо услуги или действия, исходя из Вашего варианта;
  • 7 форма - форма просмотра оказанных/выданных/оформленных услуг, с возможностью удаления одной выделенной строки;
  • 8 форма - форма выгрузки всей информации из БД;
  • 9 форма - форма с информацией о разработчике

Формы

Главная форма приложения предоставляет доступ ко всем другим формам. В зависимости от того, под какой учетной записью был произведен вход, наполнение главной формы должно меняться. Если пользователь выполнил вход в приложение под учетной записью "Администратор", то доступны все функции. Если пользователь выполнил вход в приложении под обычной учетной записью, то доступны функции только оформления/назначения/выдачи какой-либо услуги, оформление отчета или чека в формате MS Word и информация о разработчике.
Форма авторизации в приложении предоставляет различным категориям пользователей выполнять процедуру аутентификации в приложении. В БД должна быть создана отдельная сущность с именем users для хранения логина пользователя, отображаемого имени пользователя и зашифрованного пароля в виде хеша, используя алгоритм хеширования SHA256. На данной форме должен быть выпадающий список с учетными записями и поле ввода пароля. Выпадающий список должен содержать названия учетных записей на русском языке (поле user_name в БД), но вся обработка должна быть произведена с названием логина (поле login_name в БД). Примерная структура таблицы представлена ниже.
id user_name login_name passwd
1 Петров В.И. petrovvi dhgl5dmvjk476mn4t8ug8ggn458hfgu6jyhm8h8t
2 Сидорова А.И. sidorovaai nvdhg5uergnfdslthyyrnm5h457h4yb77b545g74
Форма регистрации нового пользователя предоставляет возможность только учетной записи "Администратор" вводить новые или изменять существующие учетные записи пользователей. На форме необходимо отобразить в контроле DataGridView всех зарегестрированных пользователей в БД. Обязательно реализовать функционал генерирования случайного пароля для учетной записи по нажатию на соответствующую кнопку на форме (размер пароля не менее 8 символов, состоящий из букв латинского алфавита, верхнего и нижнего регистра с цифрами и спец символами). Дать возможность администратору редактировать созданный пароль с формы.
Форма добавления информации позволяет добавлять новые данные (записи) в таблицы, которые явно прописаны в самом задании.
Форма удаления и редактирования позволяет производить различные манипулации с данными (редактирование и удаление) в таблицах, которые явно прописаны в самом задании.
Форма оформления/выдачи/оказания какой-либо услуги или действия позволяет назначить или записать услуги/действие в связующиую таблицу используя идентификаторы.
Форма для просмотра оказанных/выданных/оформленных услуг, с возможностью удаления одной выделенной записи.
Форма выгрузки всей информации из БД должна предоставлять функционал удобного экспорта всех данных из всех таблиц БД в формат CSV, указава необходимый разделитель значений в строке. Разделитель должен указываться на форме в виде выпадающего списка - ":", ";", "|" или "/". Название файла CSV должно соответствовать названию таблицы.
На всех формах, где имеются элементы ввода значений обязательно предусмотреть контроль вводимой информации - поставить ограничения на ввод любой информации с форм. Написать обработчики на все ошибки переполнения при манипулировании (добавление/изменение/удаление) с данными в БД. Осуществлять очистку элементов ввода после успешного добавления/изменения/оформление услуг и т.д. Запрашивать подтверждения пользователя при удалении информации.
При работе с запросами в языке SQL обязательно использовать встроенные функции - COUNT(), AVG(), SUM(), MIN(), MAX() и другие. Если необходимо, исходя из полученной темы задания, то обязательно автоматизировать ввод входных значений выпадающими списками, используя элемент ComboBox.
Обязательно предусмотреть контроль работы с календарными датами (в тех вариантах, где это требуется исходя из задания - дата оформления путевки/выдачи книги/оформление путевого листа/...), дата не должна быть прошедшая. Значения в виде ФИО, даты и адреса в сущностях, должны быть обязательно разделены на разные поля. На формах не должно быть много пустого места, интерфейс программы должен быть продуман, контролы для управления должны распологаться "не хаотично", а представлять полностью законченный дизайн формы и приложения в целом.
Для каждой формы необходимо обязательно реализовать пропорциональное масштабирование всех элементов, находящихся на форме, при изменении размера/растягивании всей формы под конкретное разрешение экрана монитора.
На всех формах, где имеется отображение базы данных в контроле DataGridView обязательно разместить на форме общее количество записей в отображаемой таблице. Для отображения количества записей использовать контрол TextBox или Label без возможности вручную изменить это значение. Обеспечить динамическое отображение количества записей (изменение счетчика при добавлении или удалении записей).
Выполнить проверку всего исходного кода (проект Visual Studio) синтаксическим анализатором PVS-Studio на наличие синтаксических, лексических ошибок или возможных опечаток в коде (https://habr.com/ru/company/pvs-studio/blog/443342/). Сохранить полный отчет проверки анализатором и разместить его в папке с проектом.
По окончании практики сдать руководителям практики отчет (папка-скоросшиватель) с полным комплектом документации (отчет) + компакт-диск со всеми электронными материалами по практике (исходные коды+исполняемая программа+документы). Оформление компакт-диска (структура папок) показана папкой-шаблоном в архиве CD!
По окончании производственной практики студенту будет выставлена оценка в ведомость и в зачетную книжку

Варианты задания

Распределение заданий по неделям практики:
  • 1 неделя - проектирование структуры БД, заполнение данными
  • 2 неделя - главная форма, форма с информацией о разработчике. Тестирование;
  • 3 неделя - форма регистрации нового пользователя (добавление новых пользователей);
  • 4 неделя - форма авторизации (2 типа учетных записи - администратор и обычный пользователь);
  • 5 неделя - форма добавления информации;
  • 6 неделя - форма удаления и редактирования информации;
  • 7 неделя - форма для оформления/выдачи/оказания какой-либо услуги или действия, исходя из Вашего варианта;
  • 8 неделя - форма просмотра оказанных/выданных/оформленных услуг, с возможностью удаления одной выделенной строки;
  • 9 неделя - форма выгрузки всей информации из БД. Тестирование;
  • 10 неделя - компоновка законченного приложения. Защита и сдача отчетов

Задания на проектирование по вариантам:

Бунин А.А., Королева А.Н., Мырова Ж.Р., Теровкин Н.В. - автомастерская


Вагичев А.А., Кузнецов И.Ю., Пиюнкин Д.С. - кинотеатр


Гнездилов К.С., Кутузов К.С., Пшеничников Д.А. - больница


Девицына А.А., Лебедев В.В., Ремизов А.А. - спорткомплекс


Емеличева А.А., Лукин П.М., Самохин К.А. - татусалон


Жаренов И.А., Луцков Т.В., Серов М.Д. - салон красоты


Зорин В.С., Мельников Г.А., Тепляков А.Е. - университет