Smart-Desktop full example: Human Resources management system


This section presents details of building a simple HR management system based on Smart-EIS. This system is assumed to be able to manage basic employee’s information for profiling purposes. In addition, the system shall support three user roles: (i) the System Admin, who shall manage the system security and create database backups, (ii) the HR Manager, who shall be able to manage the system HR configurations, such as job-titles and departments, and (iii) the HR Officer, who shall handle the daily work of HR management, such as input and maintain employee’s data.

This figure shows the use-case diagram to clarify the high-level requirements of the HR system:

the entity-relationship diagram of the HR system, which shall contain two parts, one for the security and the other for the HR business logic.

In order to develop the HR system using Smart-EIS, the following steps shall be performed:

  • Create a database physical structure for the business domain tables only. There is no need for security tables since they are already bundled in Smart-EIS.
  • Create new maven project
  • Add only one single dependency to a new maven project, as the following:
<dependency>
<groupId>com.jalalkiswani</groupId>
<artifactId>smart-eis-desktop</artifactId>
<version>0.0.9-4</version>
</dependency>

 

  • Use src/main/resources/meta/menu.xml file that contains the following sections:
<main-menu>
<menu name="HR Config">
<menu-item name="Departments">
<properties>
<property name="table-meta" value="hr_departments" />
</properties>
</menu-item>
<menu-item name="Degrees">
<properties>
<property name="table-meta" value="hr_degrees" />
</properties>
</menu-item>
<menu-item name="Family releationships">
<properties>
<property name="table-meta" value="hr_family_relations" />
</properties>
</menu-item>
</menu>
<menu name="HR Management">
<menu-item name="Employees ">
<properties>
<property name="table-meta" value="hr_employees" />
<property name="detail-tables" value="hr_employee_personal_info,hr_employee_degrees,hr_employee_family" />
<property name="detail-fields" value="emp_id,emp_id,emp_id" />
<property name="cross-table" value="false,true,false"/>
</properties>
</menu-item>
</menu>
</main-menu>

 

Use the Database Analyzer to create src/main/resources/meta/meta.xml,

  • Create a main class as the following:
package com.jalalkiswani.demo;
import com.jk.framework.application.ApplicationManager;
public class ThesisDemo {
   public static void main(String[] args) {
      ApplicationManager.getInstance().start();
   }
}

These were the only steps needed to build the HR system and have it ready to be run. . show screenshots samples of the dynamically generated user interface views of the HR system. All these views and their related front-end as well as back-end functionalities had been dynamically generated by Smart-EIS framework.

Main Menu UI View for the Current User of the HR System

Security Configuration UI View of the HR System

Database Backup UI View of the HR System

Dialog to Configure HR Degrees of the HR System

 UI View to Add Employees of the HR System

Managing an Employee’s Record Tab of the HR System