Задание
В рамках выполнения практической части курса вами будет разработан сквозной пример: приложение «Электронная зачётная книжка» (модуль ИС для вузов).
Первая часть практического задания будет посвящена освоению базовых технологий, таких как C#, базы данных, клиентские технологии и т.п., вторая часть будет включать изучение возможностей платформы Flexberry для эффективного создания приложений.
Общее описание предметной области
Требуется создать отдельный модуль приложения для вузов. Данный модуль должен покрывать потребность в фиксации информации о студентах и их успеваемости. Известно, что студенты учатся в группах, каждая группа прикреплена к какому-нибудь факультету. Каждый студент должен сдавать зачёты и экзамены в период сессии. Информация об этой деятельности фиксируется в приложении.
Технические требования:
- Приложение реализуется в виде ASP.NET WebForms-приложения.
- Данные хранятся в БД MSSQL Server.
Практическое задание №1 - Серверная разработка (C#, .NET, ASP.NET)
Для реализации потребуется:
- Microsoft Visual Studio 2015
- Git for Windows
Задание. Часть 1.
Требуется реализовать алгоритм генерации уникального цифро-буквенного кода для номера зачётки, исходя из следующих входных данных: ФИО студента, дата рождения, номер группы. Алгоритм формирования данного кода нужно придумать самостоятельно. Длина цифро-буквенного кода не должна превышать 8 символов. Код должен быть построен таким образом, что по нему должна быть реализована потенциальная возможность вычислить конкретного студента (из известного списка), не храня соответствия между студентом и кодом. Примеры цифро-буквенного кода: ШШШШПВВ4; А665Б44В. К алгоритму следует в комментарии приложить описание выбранного варианта работы алгоритма, т.к. допустимы различные варианты формирования данного цифро-буквенного кода.
Реализацию следует сделать в виде .net-библиотеки и подготовить модульные тесты для неё, продемонстрировать процент покрытия кода модульными тестами (чем больше, тем лучше).
Задание. Часть 2.
Реализовать простое ASP.NET WebForms-приложение (на данном этапе без БД), которое содержит компоненты (ascx-контролы), реализующиие:
- Логику ввода поискового запроса цифро-буквенного кода и использование библиотеки из предыдущего пункта для выдачи информации о найденном студенте (поле для ввода значения, кнопка, блок с отображением результатов).
- Логику получения цифро-буквенного кода для указанной информации о ФИО студента, даты его рождения и номера группы (поля для ввода значений, кнопка, блок с отображением результатов).
Предоставление результатов выполнения работы на проверку
Реализованное решение (Visual Studio Solution) полностью разместить в репозитории на GitHub (решение должно компилироваться и запускаться). Ссылку на репозиторий предоставить преподавателям курса.
Практическое задание №2 - Клиентская разработка (HTML, CSS, JS, jQuery)
Для реализации потребуется:
- Редактор кода для клиентской разработки: Visual Studio Code, Atom, Sublime Text и т.п.
- Git for Windows
Задание
С использованием возможностей HTML, CSS, JS, jQuery сверстать форму, на которой будет отображаться расположение парт в аудитории вуза. Парты можно перемещать между фиксированными ячейками (в соответствии с реальным расположением парт в конкретной аудитории, в которой проходит экзамен). За каждой партой может находиться 0, 1 или 2 студента. На форме также должен быть блок с информацией о номере аудитории, преподавателе и предмете, по которому проходит экзамен. Для выставления оценки студенту предоставляется возможность кликнуть на его фамилии или изображении и выбрать оценку в красиво всплывающем списке.
Предоставление результатов
Реализованный проект разместить в репозитории на GitHub в виде встроенных страниц GitHub Pages, позволяющих просматривать готовый результат. Ссылку на репозиторий и опубликованный таким образом проект предоставить преподавателям курса.
Практическое задание №3 - Базы данных
Для реализации потребуется:
- Microsoft SQL Server
- Microsoft SQL Server Management Studio
- Git for Windows
Задание
Для указанной предметной области реализовать базу данных, заполнить базу скриптами (минимум по 5 записей на таблицу). Реализовать скрипты по созданию констрейнтов, индексов. Приложить скрипты создания БД и заполнения, бакап БД.
Подготовить SQL-скрипты для получения следующей информации:
- Вывести список преподавателей, которые ставят максимальное по количеству отличных оценок.
- Вывести топ N самых плохо учащихся студентов.
- Вывести предметы, по которым больше всего должников за указанный период.
- Вывести рейтинг факультетов по среднему баллу студентов.
- Получить средний балл для каждого студента вуза по годам.
Предоставление результатов
Реализованные скрипты закоммитить в GitHub-репозиторий. Ссылку на репозиторий предоставить преподавателям курса.
Практическое задание №4 - Проектирование ИС
Для реализации потребуется:
- Flexberry Designer
Задание
Нарисовать UML-диаграммы для обозначенной предметной области. Состав диаграмм определяется самим слушателем курсов, но должен обеспечивать полноценное описание предметной области.
Предоставление результатов
Результатом работы является выгруженная в формате CRP стадия из Flexberry Designer. Стадию (файл с расширением *.CRP) следует закоммитить в репозиторий на GitHub, ссылку предоставить преподавателям курса.
Практическое задание №5 - Объектный дизайн и генерация приложений
Для реализации потребуется:
- Flexberry Designer
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Git for Windows
Задание
Выполнить объектный дизайн и генерацию ASP.NET-приложения для описанной предметной области. В качестве основы использовать реализованные ранее UML-модели. Генерация приложения и БД должна быть выполнена средствами Flexberry Designer приложение должно соответствовать требованиям и быть полностью работоспособным. Представления должны быть качественно настроены, подписи к классам и атрибутам на формах должны быть адекватными. Перечень форм и атрибутивный состав должны соответствовать предметной области и покрывать все требуемые бизнес-функции.
Предоставление результатов
Сгенерированное приложение и скрипты создания БД следует выложить в репозиторий на GitHub. Предоставить преподавателям ссылку на репозиторий.
Практическое задание №6 - Разработка бизнес-логики приложений
Для реализации потребуется:
- Flexberry Designer
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Git for Windows
Задание
В сгенерированном при помощи Flexberry Designer приложении требуется реализовать следующую бизнес-логику.
- Реализовать бизнес-сервер, который будет проверять выставление оценок за экзамены только в период сессии (январь и июнь). Вне сессии выставление и исправление оценок не допускается.
- Реализовать бизнес-сервер, который будет использовать .net-библиотеку для проставления буквенно-цифрового кода номера зачётки.
- Реализовать бизнес-сервер, который будет проверять, что студенту не выставляется новая оценка за экзамен, который у него уже обозначен как сданный (не создаётся дублирующая запись). При этом, редактирование выставленных ранее оценок в период сессии допустим.
- Добавить хранимое поле в класс группы, которое будет содержать количество студентов в данной группе. Перевычисление этого поля реализовать в бизнес-сервере.
- Добавить не хранимое поле в класс группы, которое будет составлять строку, содержащую факультет, название группы, количество учащихся.
Предоставление результатов
Доработанная бизнес-логика должна быть включена в разрабатываемое приложение и закоммичена в соответствующий репозиторий. Ссылка на репозиторий предоставляется для проверки преподавателям курса.
Практическое задание №7 - Разработка UI-логики приложения
Для реализации потребуется:
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Редактор кода для клиентской разработки: Visual Studio Code, Atom, Sublime Text и т.п.
- Git for Windows
Задание
Привязать реализованные ранее ascx-компоненты для работы с цифро-буквенными кодами к данным из БД.
Реализовать интеграцию формы для рассадки студентов в аудитории с бизнес-логикой приложения. На форме для элементов управления с выбором должны браться из БД (через ORM и Lookup) группы, студенты. Проставление оценок также должно работать с сохранением в БД.
Требуется настроить красивый внешний вид для всех форм приложения. Улучшить визуальную тему оформления. Реализовать ярлыки на рабочем столе приложения для быстрого доступа к часто используемым функциям.
Реализовать дополнительные формы, которые будут выводить результаты выполнения запросов из задания по БД.
Предоставление результатов
Доработанная UI-логика должна быть включена в разрабатываемое приложение и закоммичена в соответствующий репозиторий. Ссылка на репозиторий предоставляется для проверки преподавателям курса.
Практическое задание №8 - Функциональные подсистемы Flexberry
Для реализации потребуется:
- Flexberry Designer
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Git for Windows
Задание
Для реализованного приложения настроить подсистему полномочий. Пользователи должны заводиться администратором приложения. Авторизация на основе форм. Создать иерархию ролей, добавить операции на просмотр данных об оценках и выдать права только преподавателям. Настроить несколько ролей и назначить эти роли пользователям.
Настроить подсистему аудита. В разрабатываемом приложении все изменения объектов данных должно фиксироваться в подсистеме аудита. В навигационное меню следует добавить формы аудита, которые должны показываться только администраторам.
Предоставление результатов
Доработанное приложение должно быть закоммичено в соответствующий репозиторий. Дополнительно в репозиторий должны быть добавлены SQL-скрипты, которые нужно выполнить для функционирования приложения с подсистемой полномочий и аудита. Ссылка на репозиторий предоставляется для проверки преподавателям курса.