Задание

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

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

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

Требуется создать модуль учета заявлений абитуриентов о приеме в вуз. Каждый человек в один год может подать одно заявление в один вуз, в котором может указать несколько специальностей, на которые хочет поступить. Данные специальности приоретизируются (на какую хочет больше, на какую меньше). Все заявления разбиваются на различные типы: высшее образование (ВО), средне специальное образование (СПО), кадры высшей квалификации (Аспирантура). В системе фиксируется различная информация об абитуриентах, в том числе, адрес прописки.

Технические требования:

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

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

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

  • Microsoft Visual Studio 2015
  • Git for Windows

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

Требуется реализовать алгоритм составления форматированной в нужном порядке строки адреса проживания абитуриента на основании текстового ввода. Выходная строка должна содержать адрес в формате: Индекс, край или область, город, улица, дом, корпус, квартира. Альтернативный вариант для сельских поселений: Индекс, край или область, район, населённый пункт, дом, корпус, квартира. Входная строка может содержать не все элементы адреса, в этом случае нужно подставлять значение по умолчанию (например, Пермский край, если край не был указан), порядок элементов адреса во входной строке может быть любым, перед каждым элементом указывается его тип, например, г. Пермь, ул. Красная, ул. Синяя, д.45, кв. 111, гор. Пермь. Если адрес не может быть сопоставлен, требуется вывести сообщение об ошибке.

Реализацию следует сделать в виде .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

Задание

Требуется разработать веб-интерфейс для занесения данных о заявлении абитуриента. Для этого:

  • В шапку поместить необходимые собственные поля заявления.
  • Его мастера и детейлы (личность\территория) разместить ниже во вкладках.
  • Вкладка с выбором специальностей должна позволять перетаскивать (Drag’n’Drop) необходимые специальности из общего списка в список конкретного абитуриента. При этом из общего списка их удалять, чтобы нельзя было выбрать дважды.
  • Перечень выбранных специальностей также отображать в шапке через запятую.

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

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

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

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

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

Задание

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

  1. Вывести ТОП-10 территорий по количеству абитуриентов
  2. Вывести специальность, на которую подано наибольшее количество заявлений
  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. Номер при создании нового заявления должен проставляться автоматически. Формат номера: сокращение типа завявления («ВО», «СПО» или «Асп»), тире, порядковый номер заявления.
  3. При сохранении заявления проверять, что у него нет приоритетов с одинаковыми номерами. Так же не должно быть разрывов в номерах приоритетов одного заявления (номера должны идти подряд от 1 до n).
  4. Добавить хранимое поле ПолноеНаименование в сущность Территория. Перевычислять это поле при сохранении территории.
  5. Добавить нехранимое поле ФИО в сущность Личность. Значение поля собирать из значений полей Фамилия, Имя, Отчество.

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

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

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

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

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

Задание

  1. Привязать реализованные ранее контролы (ascx) для отображения/ввода иерархии территорий к данным из БД.
  2. Реализовать форму для ввода заявления абитуриента. Связать ее с данными из БД и логикой из бизнес-серверов. Для отображения приоритетов использовать AGE, для выбора личностей и специальностей – Lookup.
  3. Реализовать дополнительные формы для вывода отчетов - результатов запросов из задания по БД.
  4. Улучшить внешний вид форм, перегрузив тему оформления.
  5. Добавить ярлыки на рабочий стол приложения для доступа к часто используемым функциям.

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

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

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

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

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

Задание

  1. Для реализованного приложения настроить подсистему полномочий. Роли и пользователи должны заводиться только администратором приложения. Создать иерархию ролей, создать пользователей и назначить им роли. Добавить операции на создание заявлений абитуриентов и разрешить их только членам приемной комиссии. Авторизация с помощь форм.
  2. Настроить подсистему аудита. В реализованном приложении все изменения объектов данных должны фиксироваться в подсистеме аудита. В навигационное меню (на рабочий стол приложения) добавить формы аудита, которые должны показываться только членам группы администраторов.

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

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