Software Architecture

Introduction

HR Manage is a complete human resources software solution that provide specialised functions to Human Resources and Industrial Relations departments as well as online self service functionality to all employees. The software can be customised to adapt to client practices, terminology, colour scheme for the web application and also the ability to develop custom plugins. The system does not include payroll but works in conjunction with any payroll system via the payroll integration module.

Overview

HR Manage is a distributed application developed in Visual Studio 2022 and the .NET Framework version 4.7.2 and is always developed using the latest technology available. Components sourced from 3rd parties are from reputable international companies like Syncfusion and DevExpress. The system was designed from the ground up to be optimised to work over wide area networks like the internet, across multiple countries and sites, etc. HR Manage uses the .NET TCP Remoting technology to communicate between the client computers and the server. Multiple requests and results are grouped and compressed into one call to the server to minimise network traffic and improve performance. The system uses various compression and caching techniques in order to minimise network traffic of optimal performance over the internet.

The system excels at working with large batches of records at once.

Database

All data is stored in a Microsoft SQL Server database. We usually prefer that the database be installed on the same server as the HR Manage Server Components (Business Layer) as there are multiple calls back and forth between the two layers per request. The database can then be limited to local connections only so that it cannot be accessed directly from outside the server as the HR Manage Server Components is the only layer with direct access to the database.

There are no open connections to the database while running HR Manage. Only once a request is submitted to the server from one of the clients, then a connection is opened, data retrieved / updated and connection is closed again. Thus, there will be concurrent database connections when multiple users perform an action at the same time (i.e. clicking a save button, applying a filter, etc.).

The size of the database will depend on the size of the company (number of employees) and which functionality is being used. The database can remain relatively small (400mb) even for large companies with thousands of employees but the size can drastically increase to several gigabytes if the documents & attachments functionality (feature to scan and attach documents in HR Manage) is being used.

HR Manage Server Components (Business Layer)

This layer receives compressed requests from the client computers and web interface, then gathers the requested data and processes it (which could involve multiple calls to the database), which is then compressed and sent back to the client as one combined result set. This is the only layer with direct access to the database and all clients, web applications and even external plugins must go through this layer to retrieve / update data.

The server components are in the form of a Windows Service hosted on the application server. All files are contained within a single folder and installation / upgrades are only contained within that folder. No system files, registry or anything else is affected on the system as HR Manage is completely isolated.

Web Interface

The web interface is developed on the MVC5 pattern using the .NET Framework 4.7.2. This can be installed on either a separate web server (large clients) or on the application server where the Business Layer is installed (smaller clients with less than 500 employees). The web interface provide access to certain functions in HR Manage via any major web browser. Data is retrieved / sent to the Business Layer which will in turn, query / update the database.

HR Manage Clients

Users that make use of HR Manage (power users, not standard employees), need to have the HR Manage Client Application installed on their computers. This is a rich user interface that allows users a lot of flexibility in retrieving / updating information. It is used for everything from configuring system behaviour, managing security, capturing data and specialised reporting.

Web Clients

Normal employees that require limited access to HR Manage (e.g. for Leave Applications, Performance Management), can access HR Manage Online via their preferred web browser. HR Manage works with all major internet browsers like Mozilla Firefox, Opera, Google Chrome and Apple Safari.  Note the Internet Explorer is no longer supported.

Additional Information

Security

The HR Manage client application uses Windows Authentication to connect to the server application which means that the person attempting to use the client application must have a user account either on the domain where HR Manage is hosted or on the HR Manage server in order to even start the HR Manage software.

Once HR Manage is opened, an additional HR Manage username and password will be required to access the system. These credentials can be linked to an Active Directory account by the user self during authentication. The HR Manage User Accounts are used to further define access to specific program areas as well as to specific employees from different locations and job grades. The same security accounts are used when logging into the web application. These security credentials are encrypted and stored in the HR Manage database.

Maintenance

From an IT standpoint, the only maintenance with regards to HR Manage is to ensure that daily backups of the database is performed. Since we keep a detailed archive of all versions, the whole HR Manage setup and server configuration can be recovered as long as a single complete database backup is available. We recommend database backups be kept for at least 7 days (30 preferred) before being overwritten / deleted.

From the HR Administration side, the payroll integration should be checked on a regular basis to ensure that data refresh was done and values are matched. This is mostly due to inconsistent data being captured in the payrolls and quality of data received from some payrolls.