Задание

В рамках выполнения практической части курса вами будет разработан сквозной пример: приложение «Электронная зачётная книжка» (модуль ИС для вузов).

Первая часть практического задания будет посвящена освоению базовых технологий, таких как 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-контролы), реализующиие:

  1. Логику ввода поискового запроса цифро-буквенного кода и использование библиотеки из предыдущего пункта для выдачи информации о найденном студенте (поле для ввода значения, кнопка, блок с отображением результатов).
  2. Логику получения цифро-буквенного кода для указанной информации о ФИО студента, даты его рождения и номера группы (поля для ввода значений, кнопка, блок с отображением результатов).

Предоставление результатов выполнения работы на проверку

Реализованное решение (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-скрипты для получения следующей информации:

  1. Вывести список преподавателей, которые ставят максимальное по количеству отличных оценок.
  2. Вывести топ N самых плохо учащихся студентов.
  3. Вывести предметы, по которым больше всего должников за указанный период.
  4. Вывести рейтинг факультетов по среднему баллу студентов.
  5. Получить средний балл для каждого студента вуза по годам.

Предоставление результатов

Реализованные скрипты закоммитить в 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 приложении требуется реализовать следующую бизнес-логику.

  1. Реализовать бизнес-сервер, который будет проверять выставление оценок за экзамены только в период сессии (январь и июнь). Вне сессии выставление и исправление оценок не допускается.
  2. Реализовать бизнес-сервер, который будет использовать .net-библиотеку для проставления буквенно-цифрового кода номера зачётки.
  3. Реализовать бизнес-сервер, который будет проверять, что студенту не выставляется новая оценка за экзамен, который у него уже обозначен как сданный (не создаётся дублирующая запись). При этом, редактирование выставленных ранее оценок в период сессии допустим.
  4. Добавить хранимое поле в класс группы, которое будет содержать количество студентов в данной группе. Перевычисление этого поля реализовать в бизнес-сервере.
  5. Добавить не хранимое поле в класс группы, которое будет составлять строку, содержащую факультет, название группы, количество учащихся.

Предоставление результатов

Доработанная бизнес-логика должна быть включена в разрабатываемое приложение и закоммичена в соответствующий репозиторий. Ссылка на репозиторий предоставляется для проверки преподавателям курса.

Практическое задание №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-скрипты, которые нужно выполнить для функционирования приложения с подсистемой полномочий и аудита. Ссылка на репозиторий предоставляется для проверки преподавателям курса.