Задание

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

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

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

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

Каждая образовательная организация имеет свой тип (училище, техникум или колледж), и, возможно, является структурным подразделением другой образовательной организации. Система должна хранить сведения о заявлениях на перевод или поступление в образовательную организацию.

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

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

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

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

  • Microsoft Visual Studio 2015
  • Git for Windows

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

Требуется реализовать алгоритм вычисления стоимости годового посещения для указанного студента. У каждой группы есть целочисленное свойство «стоимость годового посещения», которая используется для вычисления стоимости. Также стоимость зависит от использования общежития (фиксированная стоимость использования места в общежитии в месяц). Студенты с льготной категорией имеют скидку 50%.

Реализацию следует сделать в виде .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. Вывести топ N учеников с наибольшим количеством переходов по классам за весь период.
  3. Вывести учебные заведения, в которых училось меньше всего учеников в прошлом от текущего года.
  4. Проранжировать учебные заведения по средней цене обучения за текущий год.
  5. Вывести сумму оплаты за обучения для каждого студента по годам, с указанием учебного заведения и класса.
  6. Вывести учебные заведения в которых имели место прецеденты с обработкой заявления дольше чем 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 приложении требуется реализовать следующую бизнес-логику.

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

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

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

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

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

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

Задание

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

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

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

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

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

Задание

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

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

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

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