Задание

В рамках выполнения практической части курса вами будет разработан сквозной пример: приложение «Сетевые образовательные программы» (модуль ИС для вузов).
Первая часть практического задания будет посвящена освоению базовых технологий, таких как C#, базы данных, клиентские технологии и т.п., вторая часть будет включать изучение возможностей платформы Flexberry для эффективного создания приложений.

Общее описание предметной области

Требуется разработать модуль поддержки при управлении сетевыми образовательными программами. Студент поступает в базовый вуз, однако в течение обучения может пройти отдельные модули (аналог семестров) в других организациях (к примеру, в другом вузе или производственном предприятии), с которыми базовая организация имеет договоренности.
Будем считать, что рассматривается магистерская программа, т.е. 4 модуля. Для прохождения модуля в другой организации, студент указывает свои предпочтения: первый, второй и третий приоритет.
Технические требования:

  • Приложение реализуется в виде ASP.NET WebForms-приложения.
  • Данные хранятся в БД MSSQL Server.

Практическое задание №1 - Серверная разработка (C#, .NET, ASP.NET)

Для реализации потребуется:

  • Microsoft Visual Studio 2015
  • Git for Windows

Задание. Часть 1.

Требуется реализовать алгоритм проверки корректности введённого номера договора. Формат номера договора должен быть придуман самостоятельно, например, 00ААА0000А0.
Реализацию следует сделать в виде .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 сверстать форму, на которой будет отображаться перечень вариантов выбора доступных образовательных программ для всего периода обучения студента. Каждому семестру должен соответствовать отдельный блок с указанием номера семестра и интервалом дат (блоки семестров идут сверху вниз). В рамках каждого блока семестра располагаются доступные для студента блоки образовательных программ с кратким описанием (располагаются горизонтально на одном уровне). От семестра к семестру их количество может изменяться. Студент должен выстроить эти программы в соответствии со своими предпочтениями (перетаскивая блоки с кратким описанием образовательной программы мышью или с использованием кнопок на интерфейсе) - блок образовательной программы располагающийся слева имеет наивысший приоритет, блок с правого края - наименьший.

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

Реализованный проект разместить в репозитории на GitHub в виде встроенных страниц GitHub Pages, позволяющих просматривать готовый результат. Ссылку на репозиторий и опубликованный таким образом проект предоставить преподавателям курса.

Практическое задание №3 - Базы данных

Для реализации потребуется:

  • Microsoft SQL Server
  • Microsoft SQL Server Management Studio
  • Git for Windows

Задание

Для указанной предметной области реализовать базу данных, заполнить базу скриптами (минимум по 5 записей на таблицу). Реализовать скрипты по созданию констрейнтов, индексов. Приложить скрипты создания БД и заполнения, бакап БД.

Подготовить SQL-скрипты для получения следующей информации:

  1. Вывести список студентов, которые выбрали первым приоритетом указанную организацию.
  2. Вывести рейтинг организаций, построенный по принципу: за каждого студента 1-го приоритета даётся 3 балла, 2-го приоритета - 2 балла, 3-го приоритета - 1 балл.
  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. Добавить НЕ хранимое поле в класс студента, которое будет составлять строку, содержащую выбранные образовательные программы с приоритетом по семестрам (сортировка от большего приоритета к меньшему). Например: Семестр №: 1-программа 1, 2-программа 12, и т.д.

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

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

Практическое задание №7 - Разработка UI-логики приложения

Для реализации потребуется:

  • Microsoft Visual Studio 2015
  • Microsoft SQL Server
  • Редактор кода для клиентской разработки: Visual Studio Code, Atom, Sublime Text и т.п.
  • Git for Windows

Задание

Реализовать интеграцию формы для ввода данных о выбранных студентом образовательных программах с бизнес-логикой приложения. На форме для элементов управления с выбором, значения должны браться из БД (через ORM и Lookup). Ввод данных о выбранной программе и приоритете должен работать с сохранением в БД.

Требуется настроить красивый внешний вид для всех форм приложения. Улучшить визуальную тему оформления. Реализовать ярлыки на рабочем столе приложения для быстрого доступа к часто используемым функциям.

Реализовать дополнительные формы, которые будут выводить результаты выполнения запросов из задания по БД.

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

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

Практическое задание №8 - Функциональные подсистемы Flexberry

Для реализации потребуется:

  • Flexberry Designer
  • Microsoft Visual Studio 2015
  • Microsoft SQL Server
  • Git for Windows

Задание

Для реализованного приложения настроить подсистему полномочий. Пользователи должны заводиться администратором приложения. Авторизация на основе форм.

Создать иерархию ролей, добавить операции на просмотр/изменение/удаление данных о программах и их выбор студентом. Настроить несколько ролей и назначить эти роли пользователям.

Настроить подсистему аудита. В разрабатываемом приложении все изменения объектов данных должно фиксироваться в подсистеме аудита. В навигационное меню следует добавить формы аудита, которые должны показываться только администраторам.

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

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