Задание:
Необходимо реализовать базу данных и подключить к ней WPF проект. Предметная область должна подразумевать продажу чего-либо, например, в церкви продают свечки, в турагенстве путевки
Необходимые пункты для задания:
БД:
1.1 - Должна быть БД на 10-15 связанных между собой таблиц. Предметная область для реализации БД берется по желанию или по выбору преподавателя и согласовывается с преподавателем.
1.2 - БД должна быть нормализована согласно 3 НФ. В итоговом отчете должна быть логическая и физическая модель данных
1.3 - В каждой таблице должно быть по 2-3 записи
WPF:
2.1 - Внутри приложения WPF должны быть разные окна\страницы для разных таблиц
2.2 - Данные из БД должны читаться в DataGrid в WPF (Если в БД поле - ссылка на внешний ключ, то вместо ID по ссылке должно выводиться понятное значение из внешней таблицы, а также столбцы должны иметь нормальное название)
2.3 - В программе должна быть авторизация по ролям. Минимум должно быть 2 роли - администратор и пользователь. У разных ролей доступ к разным таблицам (в соответствии с их ролью по логике) - условный пользователь не может посмотреть таблицы администратора.
2.4 - Регистрировать пользователя должен администратор. Данные о пользователях также идут в БД.
2.5 - Все пароли (везде, где он вводится) должны быть скрыты точками
2.6 - Должно быть предусмотрено хеширование паролей для безопасности хранения информации в БД.
2.7 - Должна быть возможность читать данные из любой таблицы. Если нет реализации чтения хотя бы для одной таблицы - минус балл
2.8 - Должна быть возможность добавлять данные в любую таблицу. Если нет реализации добавления хотя бы для одной таблицы - минус балл
2.9 - Должна быть возможность изменять данные из любой таблицы. Если нет реализации изменения хотя бы для одной таблицы - минус балл
2.10 - Должна быть возможность удалять данные из любой таблицы . Если нет реализации удаления хотя бы для одной таблицы - минус балл
2.11 - Данные из таблицы должны выгружаться в текстовые поля и выпадающие списки, чтобы их можно было изменить
2.12 - Если в БД поле - ссылка на внешний ключ, то для него должен быть предусмотрен выпадающий список, который должен выводить по ссылке (ID) любое понятное значение из таблицы
2.13 - Выпадающие списки должны обновляться сразу же, как только новые данные были в них добавлены
2.14 - Должна быть нормальная навигация между окнами\страницами - возможность вернуться назад, кнопки перехода и прочее
2.15 - Должен быть импорт данных для 2-3 таблиц. Импорт данных должен быть из JSON файла.
2.16 - Для каждого поля должна быть валидация (проверка). За невыполнение этого пункта или отсутствия валидации для некоторых полей минус балл
2.17 - Должен быть функционал кассы. На кассе сотрудник выбирает товары со склада и добавляет их в чек. Чек со всеми товарами в нем сохраняется в БД
2.18 - Итоговый чек за покупку\продажу товара должен выгружаться в формате, представленным в файле "Формат чека.txt"
2.19 Должна быть возможность просмотреть сохр