Самоучитель

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

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

Вместо самоучителя вы можете пройти наш курс на Stepik "Ускоренная разработка веб-приложений".

И в курсе на Stepik, и в самоучителе рассматриваются одни и те же концепции продукта.

Установка инструментов

Проверьте системные требования и установите Jmix Studio и Java Development Kit (JDK), как описано в разделе Установка.

О приложении

Вы разработаете приложение для автоматизации процесса онбординга (адаптации) сотрудника в компании. В каждом отделе компании есть HR-менеджер, который регистрирует новых сотрудников и назначает им список задач адаптации. Новый сотрудник получает список необходимых шагов и отмечает их выполнение.

Полный исходный код приложения доступен в репозитории GitHub: jmix-framework/jmix-onboarding-2. Мы рекомендуем следовать инструкциям этого самоучителя, чтобы создать приложение шаг за шагом, но если вы хотите просто изучить готовое приложение, клонируйте репозиторий и откройте его в Jmix Studio, как описано в разделе Открытие существующего проекта.

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

Модель данных

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

data model diagram

Главной сущностью в приложении является Пользователь (User). Пользователь характеризуется логином для входа в систему и другими атрибутами, такими как дата приема на работу (joiningDate) и статус процесса онбординга (onboardingStatus). Пользователь состоит в отделе, который обозначается ссылкой на сущность Отдел (Department).

Сущность Department - это отдел компании. У него есть имя и HR-менеджер - пользователь, который регистрирует новых сотрудников, принадлежащих к отделу.

Сущность Шаг (Step) определяет этап онбординга, например, "Инструктаж по технике безопасности", "Заполнение профиля" и так далее. Шаг имеет название (name) и продолжительность (duration) - период времени в днях после даты приема, когда сотрудник должен выполнить этот шаг. Атрибут sortValue задает порядок выполнения шага в списке шагов.

Сущность UserStep - это этап онбординга конкретного пользователя. Она связывает сущности User и Step и добавляет атрибуты даты выполнения (dueDate) и даты завершения (completedDate). Дата выполнения рассчитывается как дата приема пользователя плюс продолжительность шага. Дата завершения устанавливается на ту дату, когда пользователь отмечает выполненный шаг.

Роли пользователей

Наше приложение поддерживает следующие роли пользователей:

  • Администраторы имеют полный контроль над приложением. Они видят всех пользователей, настраивают этапы онбординга, отделы и назначают HR-менеджеров.

    admin ui 1
  • HR-менеджеры регистрируют новых сотрудников в своих отделах и начинают процесс онбординга, генерируя шаги для конкретного пользователя. Они также могут отслеживать процесс адаптации сотрудников своего отдела.

    hr manager ui 1
  • Сотрудники могут видеть свои собственные шаги онбординга и отмечать выполненные шаги.

    employee ui 1