Click here to Skip to main content
15,887,214 members
Articles / Web Development / HTML5

Microsoft SignalR Map Controller with Page Visibility API and Event Blur to Mapping the User Interaction in a Document Management System (DMS)

,
Rate me:
Please Sign up or sign in to vote.
1.80/5 (3 votes)
24 Jun 2020MIT12 min read 4.8K   3   2
This work proposes the development of a layer integrated to a DMS system in order to map the user's behavior in analytical information allowing validations, more control and facilitating organizational decision making.
The expansion of technology increasingly active in corporate departments contributes to the increase of computational systems as business strategies bring efficiency and performance to processes that depend on the processing of documents, such as contracts, reports, policies, medical records and petitions. However, some more bureaucratic processes need concerns that go beyond content distribution and storage, these contexts need more subjective controls, such as attitudes and behaviors of their users when faced with the manipulation of electronic documents. This work proposes the development of a layer integrated to a DMS system in order to map the user's behavior in analytical information allowing validations and facilitating organizational decision making.

Introduction

Information technology has become a powerful support in the business process as a strategic factor in corporations [6]. Currently, the use of technologists from several sectors has directly impacted the organizational results obtained [3]. The ability to manage documents has become an indispensable tool for the management of business knowledge [9]. An aggravating factor in this scenario is the fact that in many different sectors, organizations cannot give up the documentary bureaucracies involved in their processes. and, for this reason, they are still obliged to deal with strict procedures for handling official documents.

Document Management System (DMS) systems come as a business strategy to support the organizational processes needed, especially for companies that deal with a critical process on large volumes of forms, such as hospitals, carriers, insurance companies and legal sectors. In this context, the same bureaucracy that requires the handling of documents also requires obligations and compliance with certain regulations related to handling and the actions taken for these items, such as confirmations, state control, validations and signatures, often related to difficult to prove since it is something materialized in a field outside the technological environment, i.e., in several business contracts, a system operator is required to read all terms of a technical report before releasing or rejecting a refund request. In this sense, the difficulty of identifying whether a user has tried a rule, gone through a contract, understood a confirmation message or even followed a standard flow in a system or quibbled during a certain operation, is one of the major problems of corporations that have its businesses linked to the processing of official electronic documents.

Background

Document Management System (DMS) is a technology that provides a means of easily generating, controlling, storing, sharing and retrieving existing information in documents. DMSs allow users to access documents in an agile and secure way, usually via a web browser through a corporate network accessed internally or externally [1]. Any type of company, small, medium or large, can use the DMS, among: schools; law firms; hospitals; condominium administrators; recruitment companies; architecture, design and engineering offices; press and communications advisory services; and consultancies. In medium and large companies, the DMS can be applied to specific sectors (HR, Training, Accounting, Marketing, Informatics). This service assesses the specific needs of the client and offers a modular system, which enables the gradual implementation of Electronic Document Management.

SignalR is a free and open-source software library for Microsoft ASP.NET that allows server code to send asynchronous notifications to client-side web applications. The library includes server-side and client-side JavaScript components [12]. The Mozilla Page Visibility API [10] is a BSD License project. It is used by webpages to detect if they are visible. Some websites, among them Twitch, use this information to pause video playback in background tabs. And the Event Blur [11]occurs when an object loses focus. The onblur event is most often used with form validation code (e.g., when the user leaves a form field).

Propose

This work proposes to explore usability techniques [8] fundamentals of IHC (Human-Computer Interaction) as an attempt to approximate actions external to the technological environment, i.e., in a way that allows to be measured and later audited. That is, this proposal is an attempt to build a layer between a user and the interface of a document workflow responsible for mapping user behavior, and within pre-established and context specific business rules, compile these mappings into easy-to-read information allowing for better management-level decision.

The proposed component is basically composed of two main functionality:

  1. observe the users, to obtain how many hours the user spends in the system, which documents the user has accessed; and
  2. assure that important documents have been read by users of the system;

Besides this, both functionality must support control on other information from the users actions, like that: approved documents, accessed, pending, reading percentage and actions within files, in addition to recording in real time any pages that the user accesses;

This proposed component must be an extra layer that will run transparently for the user and the organizational process (Figure 1), so that it does not interfere with the workflow of the system operator or redefine new rules or flows that are not previously defined for the business.

5271889/artigo-igor-dmdocs.png

Fig. 1 - Schema of the Analytics module integrated with the corporate system architecture

Technical Specification

Front-End Layer

Due to time constraints to develop and technical limitations of customers, all monitoring is done through the browser's HTML5 interfaces (Page Visibility API [10] and page Blur Event [11]), and to verify that the user has not left the tab open; The system checks if it performed any action, such as messing around or typing in a specific field, in the event that it remains five minutes without performing any action. In this case, the system notifies backend that it is no longer active in the system, until it takes action again. As a performance strategy, only the user's current page has an open socket web, to avoid overlapping and reducing the use of server resources;

Back-End Layer

To perform a quick registration without relying heavily on latency and continuous Internet connection from the users, the mapping process opens a web socket between the server and the client to exchange asynchronous information in real time. To perform real-time communication between the client and server, SignalR [12] was used, an open-source asynchronous communication library responsible for creating the web socket, capable of providing sufficient agility and reliability to register in real time which page the user is on and for how long he has been actively in it.

Database

The database of the Analytics module is provided with specific tables for tracking user actions and manipulated documents. Among the shared tables of the system, are the following data entities: User, Storage, DocumentType, Document, and File. For the exclusive analysis and mapping operations, the module uses two specific tables to perform the mapping of actions and behaviors of the users:

  • UserTrack e
  • DocumentAnalytics

UserTrack points out the user tracked in the system, what his actions are and especially the points of entry and exit (in time) involved with an operation in the system. Among the main information manipulated by the UserTrack table are:

  • UserId: int - FK User.Id, not null (User Id)
  • RelativeUrl: varchar (2048) not null (Relative URL of the user's current page, for system screen tracking)
  • EntityId : int null (Entity id, optional)
  • DocumentId: int null - FK Document.Id (Reference a document, optional)
  • BeginAccessDateTime: datetime not null (End date of access)
  • EndAccessDateTime: datetime not null (End date of the access)
  • TimeInMinutes: float not null (Time in minutes of the duration of the access)

DocumentAnalytics the specific table for the description of a manipulated item of the mapped user. This entity allows a better definition of the user's action, allowing to build a behavior not only over the time of use but also allowing an analysis in each specific item of the document was handled by the user. The main information manipulated by the DocumentAnalytics table are:

  • Id: int, PK, not null, auto-increment
  • UserId: int, FK User.Id not null
  • DocumentId: int, FK Document.Id not null
  • FileId: int, FK File. Id not null
  • Type: int not null
  • Date: datetime not null

Considering the structure of the entities that make up the analysis module, the dequery process for recovering the data necessary for mapping makes use of the Entity Framework. Figure 2 presents an example of this framework being used with a group and one select for the average time of use considering the useful days of users.

ihc2020-igor-2-query-1

Fig. 2 - Example query for mapping interaction at the bank level

Using the Code

The current version of the system presents two complete analytics views, considering the retrieval, filter and presentation: (a) the mapping view presented by a specific user and (b) the presentation by document item. Figure 3 presents the user mapping screen.

ihc2020-igor-2-analytics-1

Fig. 3 - Analytics screen by user

In this figure, it is possible to check a global statistic of all actions of a given user in the system since his first, passing for all interventions performed on the platform, regardless of having manipulated a document or not in the system. For operations involving document manipulation, this screen allows access to detailed data about the item, allowing you to check more specific information about a document at the data level, such as changing or removing any changes. Figure 4 shows the analytics survey taking a document as a focus. In this analysis view, another level of observation is possible, such as, for example, a statistic on the percentage of reading of a given document considering a certain universe of users.

ihc2020-igor-2-analytics-2

Fig. 4 - Analytical screen by documentary record

Another feature, specific from this view, is the graph that builds the evolution curve of a certain item in the system regarding its handling. For example, this view allows to identify the effectiveness of a given training in an organization regarding the obligation to handle corporate contracts. On the other hand, the flattening of the evolution curve of a particular item in the system, for example a manual, may indicate that this material is either inefficient or has lost its effectiveness in a team that has already specialized. For both analysis modules, it has always been a concern the usability [5] of the screen. The fact that these screens handle a vast group of different information collected in different operational situations [4], data consolidation was not so easy, mainly because it was always an objective of this board that it served as a source of decision making and resolution of corporate conflicts. In this way, the ease of reading, the good distribution of data and the intuitive coherence respecting the context of application could directly interfere in the success of the results achieved.

A source code to Page Mapping With SignalR  example can be fetch from this Github link: https://github.com/igorsantana76/PageMappingWithSignalRExample

Conclusion

The results obtained allowed the achievement of an actuation environment that involved an excellent synchronism between the study of art on issues of concern with the usability of a system and the real needs existing in organizations that manipulate information technologies.

The system obtained was tested directly in the real production environment and after a period of approximately a few weeks, it has already shown great importance for the organization. In some contexts more critical as to the manipulation of documents, where the system administrators need to know exactly which users are using the tool, for what and when, if they are using it, what were their last actions and also how much information is still missing to be accessed. More specifically, the tests showed better performance in adapting and accepting the project in a healthcare client, a large hospital; among other flows, administrative managements needed to know whether doctors and surgeons were aware of the new hospital conduct procedures during surgical trials and whether they were using the system properly to receive information or to clear orders and releases. In this context, in particular, after the implementation of the mapping component for testing, the system was implemented as a new version of the system and after that, it was properly integrated into the corporate solution.

Despite the formal acceptance results, the project developed was also very well received by users in what concerns IHC issues. At no time did the user feel rejected by the implementation of this new layer in his processes, showing total transparency of performance and functional results. Regarding the analysis module, the tool demonstrated data presentation efficiency, with an excellent intuitive exploration of colors and information provision. The accesses to the different visualizations are very well identified and the coverage of the analysis showed to be very complete as to the corporate needs of the areas taken as a laboratory.

Among the main problems faced are the complexity of handling a very large volume of data and the need to present them, always prioritizing the visualclean, simplified and intuitive data, facilitating efficient analysis and decision making. One of the strategies to face this problem was the exhaustive use of colors and graphics, all oriented to a project based on a single page view, facilitating navigation and avoiding the maximum redesign of web components. As future work, the project already has the goal of development of features that allow a more detailed analysis over a given documentary item, not at the operational level, but considering regions and reading points by tracking the mouse position on a page, in order to find out which regions are most used by users.

References

  1. R. Baldam (2016). Gerenciamento de Conteúdo Empresarial. ECM: EnterpriseContent Management – Gerenciamento Eletrônico de Documentos (GED), Work-flow, Processos, WCM, DAM, RM e tecnologias correlatas. Rio de Janeiro: Elsevier(2016).
  2. Domore. Página Corporativa da Domore Consultoria e Treinamentos. [online] Disponível em http://www.domore.com.br, acesso em março de 2020.
  3. Marcos A. S. Freitas: Fundamentos do gerenciamento de serviços de TI. Rio deJaneiro, Ed. Brasport, (2010).
  4. Hix, D., Hartson, H. R., Developing User Interfaces: Ensuring Usability ThroughProduct and Process", NY: John Wiley, (1993).
  5. Kuhn, S. , Design for People at Work, In: T.A. Winograd (ed), Bringing Design toSoftware, Addison Wesley, (1996).
  6. Ivan L. Magalhães e Walfrido B. pinheiro: Gerenciamento de serviços de TI naPrática: uma abordagem com base do ITIL. São Paulo, Ed. Novatec, (2007).
  7. P. E. S. de Alencar e A. M. Silva. A proposal for usability evaluation methodo-logy applied to a hospital management system in production In: HCIST’2016 -V International Conference on Health and Social Care Information Systems and Technologies, Porto, Portugal, October (2016).
  8. Preece, J., Sharp, H. e Rogers, Y., 2002. Interaction Design. Nova York, Wiley andSons Pubs, (2002).
  9. A. M. Silva e R. Mattos: IBM Watson como Ambiente para Desenvolvimento e Exe-cução de um Chatbot – Um Estudo de Caso Aplicado ao Processo de Atendimentoao Usuário. In: Conference: III Congresso Internacional Adventista de Tecnologia(CIAT), At Hortolândia/SP, Sep. (2018)
  10. Mozilla MDN Web Docs. (2020) Page Visibility API. [online] Available at https://developer.mozilla.org/pt-BR/docs/Web/API/Page_Visibility_API, Last accessed on Apr. 2020.
  11. Mozilla MDN Web Docs. (2020) Evento blur. [online] Available at https://developer.mozilla.org/pt-BR/docs/Web/Events/blur, Last accessed on Mar. 2020.
  12. Microsoft. (2020) Real-time ASP.NET with SignalR, An incredibly simple real-time web for ASP.NET. [online] Available at https://dotnet.microsoft.com/apps/aspnet/signalr, Last accessed on Apr. 2020.

History

  • 18th June, 2020 - Document creation
  • 22nd June, 2020 - Revision
  • 23rd June, 2020 - Revision and validation
  • 23rd June, 2020 - Document submit
  • 29th June, 2020 - Adding the access link to source code

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
Business Analyst
Brazil Brazil
agile and devops enthusiast; master in computer science and professor in  technology courses; I have worked with projects and development for the telecommunication area
This is a Collaborative Group

5 members

Written By
Brazil Brazil
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionYou have a section called: "Using the Code" Pin
Dewey26-Jun-20 15:51
Dewey26-Jun-20 15:51 
AnswerRe: You have a section called: "Using the Code" Pin
André Marcos (Advisor)29-Jun-20 9:08
professionalAndré Marcos (Advisor)29-Jun-20 9:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.