Embedding highcarts in HDI

                                                                               Embedding highcarts in HDI


 

We can embed highcharts(http://www.highcharts.com/) in HDI (Helical Dashboard Insight).

To use highcharts, download latest version of highcharts. You can download from below mentioned link:

http://www.highcharts.com/download

Here, I am embedding a simple highcharts. You can find highcharts example on http://www.highcharts.com/demo/

1)    EFW file:- Create one EFW extension file. EFW contain the Title, author, description, Template name, visibility of the Dashboard.

2)   HTML file:  Create one html extension file. HTML file contains html code and HDI components such as SELECT, CUSTOM SCRIPT, DATE PICKER etc. We are going to use custom component:

Html file will look like this:

// Highcharts SRC scripts url

<script src=”http://code.highcharts.com/highcharts.js”></script>

<script src=”http://code.highcharts.com/highcharts-more.js”></script>

<script src=”http://code.highcharts.com/modules/exporting.js”></script>

// Dummy htmlobject for scutom script (runScript)

<div id=”chartContainer”></div>

// htmlobject for rendering the highcharts

<div id=”realtimeGraph”  style=”height: 300px;”></div>

//Now we write script and define components

<script>

dashboard = Dashboard;

var runScript = {

name: “runScript”,

type: “custom”,

requestParameters :{

“m_name” : “m_name”,

“sDate” : “sDate”,

“eDate” : “eDate”,

“org_id” : “org_id”,

“timeZone”: “timeZone”,

“clmname”:”clmname”,

“param”:”param”

},

listeners: [“m_name”,”sDate”,”eDate”],

htmlElementId: “#chartContainer”,

customScript: function(a,b){

$.getJSON(‘http://www.highcharts.com/samples/data/jsonp.php?filename=range.json&callback=?’, function (chartdata) {

$(‘#realtimeGraph’).highcharts({

chart: {

type: ‘arearange’,

zoomType: ‘x’

},

title: {

text: ‘Temperature variation by day’

},

xAxis: {

type: ‘datetime’

},

yAxis: {

title: {

text: null

}

},

tooltip: {

crosshairs: true,

shared: true,

valueSuffix: ‘°C’

},

legend: {

enabled: false

},

series: [{

name: ‘Temperatures’,

data: chartdata

}]

});

});

},

executeAtStart: true

};

// Now create one array of initialized components:

var components = [runScript];

// Now initialize defined components.

dashboard.init(components);

#realtimeGraph: It is a div ID where highcarts will be renderd.

Here we go. You can see highcharts in your HDI reports.

Thanks

Sharad

Must watch talks from React Europe

Must watch talks from React Europe

If you are an react developer, you must have heard about react-europe. It’s a conference where developers from different parts of the world come together and share their experiences and knowledge while using `React.js`. This year, it was held in Paris and talks were given by likes of Ryan Florence, Chistoper Chedeau to name a few.

This is my view. Yours may defer. This is in no ways intended to promote or demote someone

Below are few of the talks (in no particular order), which I believe are a must watch for a react developer:

Ryan Florence – Don’t Rewrite, React!

In this video Ryan Florence talks about migrating your existing app to react and also shows a live demo of converting a backbone todo list to react.

Dan Abramov – Live React: Hot Reloading with Time Travel

In this video, Dan Abramov talks about “hot reloading” react components without losing the state and also demos the ability to move between states a.k.a time-travel. He also demos his new library called “Redux”.

Cheng Lou – The State of Animation in React

In this video, Cheng Lou demonstrates how he has solved the problem of animating components in react.

Evan Morikawa & Ben Gotow – How React & Flux Turn Apps Into Extensible Platforms

In this video, the speakers show a way to make a react app more extensible by making use of plugins.

Michael Jackson – React Router

In this video, Michael Jackson (no not the king of pop), talks about the problems faced while developing the react-router.

SQL Event Scheduling

SQL Event Scheduling

 

Event is responsible for making sure that a specified routine (section of query code) is executed at regular intervals that is specified by the user.

An example of use of an Event would be as follows :
A retail store owner wants to see his remaining stocks in his store, in the morning before he opens the store. At such a time, an Event can be created to run at 8:00am, everyday, that will update his database based on the available material.
Under this condition, an Event will be specified which will empty (TRUNCATE) the “Final_Stocks” table and refill it with data from all other tables in the database which are holding the information of remaining stock of goods.

Syntax :
CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT ‘comment’]
DO event_body;

  • event_name : This is the name of the Event that is being created.
  • schedule : The schedule section deals with the starting, ending, and time intervals of repeating the Event.

 

The schedule section has the following parts :

AT timestamp [+ INTERVAL interval] …
| EVERY interval [STARTS timestamp [+ INTERVAL interval] …]
[ENDS timestamp [+ INTERVAL interval] …]

  • Interval : The interval section specifies the time interval after the previous execution the event needs to wait before being triggered again. The interval should have the following syntax :

quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
Where quantity specifies the duration of unit time (specified in the next section), eg: 3 HOUR.

  • Timestamp : The timestamp uses the current date – time timestamp to specify one of the parameters while scheduling the Event.
  • event_body : This is where the main body of the Event is specified. This section holds the working of the event, what all it should do.

 

Example:
1. Creating an Event :

1

2. Setting the time :

2

3. Original Table :

3

4. Table after Event :

4

Connection Time Out in AWS EC2

Connection Time Out in AWS EC2

 

Possible reasons for timeout when trying to access EC2 instance

  • The most likely one is that the Security Group is not configured properly to provide SSH access on port 22 to your i.p.
  • The local firewall configuration does not allow SSH access to the server.
  • The server is not started properly
  • Net connectivity
  • Wrong pem file / Host Name
  • Spelling mistake

 

When it times out or fails, check the following:

Security Group:

Make sure to have an inbound rule for tcp port 22 and either all ips or your ip. You can find the security group through the ec2 menu, in the instance options.

Routing Table:

For a new subnet in a vpc, you need to change to a routing table that points 0.0.0.0/0 to internet gateway target. When you create the subnet in your vpc, by default it assigns the default routing table, which probably does not accept incoming traffic from the internet. You can edit the routing table options in the vpc menu and then subnets.

Add Route to Routing Table
Destination: 0.0.0.0/0
Target: <Internet Gateway from earlier>

Elastic IP:

For an instance in a vpc, you need to assign a public elastic ip address, and associate it with the instance. The private ip address can’t be accessed from the outside. You can get an elastic ip in the ec2 menu (not instance menu).

Username:

Make sure you’re using the correct username. It should be one of ec2-user or root or ubuntu. Try them all if necessary.

Private Key:

Make sure you’re using the correct private key (the one you download or choose when launching the instance). Seems obvious, but copy paste got me twice.

Alternatively, Building everything back. This included:

  1. Create VPC
  2. Create Internet Gateway
  3. Attach Internet Gateway to VPC
  4. Create Routing Table
  5. Add Route to Routing Table
  6. Create Subnet

How to use Custom Component in Jaspersoft Studio:

How to use Custom Component in Jaspersoft Studio:

This Blog will teach you how to use Custom component in Jaspersoft studio.

A Custom component allows the BI Developer to enhance the functionality of Jasperreports engine by adding some custom visualized components.

By using Custom Component , we can able to develop anything like tables , charts , etc …

Steps to create Custom Component :

# 1.      Go to File -> New -> Others

Custom# 2 .     Select Custom Component

CustomThen Click Next.

# 3. There you will get 3 samples , you can select any one of them and give your Project Name.

Then Click on Next.

d3charts# 4. You can see in the left side , one folder is created named same as the above metioned name.

project explorer

# 5. Right click on build.js -> Buid Component

# 6.After thet In the same folder double click “d3_Circle_sample.jrxml” , Preview it

You will get the Output as :

output

 

 

Thanks ,

Rupam Bhardwaj

 

Business Intelligence in Human Resource

Business Intelligence in Human Resource

 

Business Intelligence 

Business Intelligence refers to the ability to use information to gain a competitive edge over competitors and to collect business data to find information primarily through asking questions, reporting, and online analytical processes. It is highly capable of handling large amounts of unstructured data to help identify, develop and otherwise create new strategic business opportunities.

Business Intelligence includes data management methods for planning, collecting, storing, and structuring data into data warehouses and data marts for clustering, classification, segmentation, and prediction.

Business intelligence plays a crucial role to achieve competitive edge over competitors in the challenging economy. The data collected contains a copy of analytical data that facilitates decision support which serve for business intelligence.

Human Resource Management

Human resource management is a function in organizations designed to maximize employee performance in service of their employer’s strategic objectives. It is primarily concerned with how people are managed within organizations, focusing on policies and systems. HR departments and units in organizations are typically responsible for a number of activities including employee recruitment, training and development, and rewarding.

Importance of Business Intelligence in Human Resource

Today, analyzing the demographics of a workforce has become an increasingly important part of HR function. Companies in the traditional markets face the problem of an aging workforce and there is often an intense competition for the best new talent.

Human Resource system globally contains masses of data. HR system manages information such as employee profiles, appraisals, compensation, benefits, etc. It must analyze the key skill sets and demographics of their existing workforce, assess whether it is helping them to meet their business targets and then identify whether things are going correct or not to help the company progress.

The Business Intelligence is potentially the missing link to turn those swarms of data into valuable information that can be used to inform decisions at all levels within a company. One of the most important features of modern BI is being able to tailor access to sensitive data.

Moreover the BI solution contains hundreds of pre-defined metrics (Skills by location, function, grade, etc , Employee performance by function, demographics, location, etc , Costing of HR functions(recruit, train), Benefits Costing, etc), assembled in meaningful charts, dashboards, scoreboards and various reports. The solution should be in such a way that HR manager can access the information they need with little effort. The user should be able to slice and dice the information through the charts and dashboards to easily drill down to the underlying data. The developed BI solution contains better use of Key Performance Indicators (KPIs). The solution should help the users easily answer important questions, identify emerging trends and predict risks and results.

 

Benefits of using Business Intelligence in HR system
  • Workforce Optimization : Using analysis throughout the company, top and bottom performers can be identified and then moved up or down. This could be used to inform future spending on training and to identify learning needs of employees.
  • Optimize Compensation : BI will help in analyzing the salary trends, group wise salary comparison, salary distribution and skews by grade, performance, etc. It will also help in evaluating benefits plan for maximum value.
  • Manage Recruitment : BI will help in analyzing the time and cost by recruitment method. Also they can analyze the recruitment success rates, applicant statistics, dropout reasons etc.
  • Analyze Workforce Composition : It will help in understanding workforce trends by job, geography, business areas, user-defined categories etc.
  • Staff Requirements Forecasting : This is based on organization goals, turnover prediction, Staff demographics, attrition etc.

Following are the key KPIs for the HR functions              

HR functions KPIs
  • % external hire rate
  • Net hire rate
  • % new position recruitment rate
  • new position recruitment ratio
  • Applicant Ratio
  • % newly recruited employees screened
  • $ Average interviewing Cost
  • % Actual cost of hire
  • Average feedback time on candidates
  • % Employee probation reports outstanding
  • % Internal appointments above level
  • % Internal hire rate
  • % Internal placement rate
  • % Cross functional mobility
  • % Employee transfer rate
  • Average interviews per hire
  • % Referral rate
  • Interviewee ratio
  • $ cost per hire
  • $ Average signing bonus expense
  • Average open time of job positions

Conclusion

HR departments struggle to make sense of disparate and overlapping data sources such as ERP systems, spreadsheets, payroll and benefits data, employee surveys, industry benchmarks. These can be brought down by using the business intelligence, which helps the HR’s to design effective compensation benefits, analyze overtime hours and costs by the departments. It also helps to measure the employees productivity and performance and correlate the information with the employee’s skill set to identify the skills that contribute to good performance by the employees.


 

Case Study Report on Sage Human Capital


Sage_logoCase Study Report

on

Sage Human Capital

                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Customer :

Sage Human Capital, HR Company

Geographical Location :

San Bruno, California

Tools Used :

DB used                  :  MySQL, Postgres

ETL tool                  :  Talend Open Studio

BI Tool                     :  Jaspersoft Professional

Cloud Service       :  Amazon Web Hosting (AWS)

Other softwares  :  Maxhire, Ringcentral

                                                                                                                                                                               

Company Overview :

 Sage Human Capital is US leading human resource company. They have revolutionized HR recruiting industry by bringing introducing some innovative concepts like “talent as a service” and “SmartSource” and boast of clientele like Accenture, Jaspersoft, McAfee, Salesgenie, Adidas, Text100 to name a few.

                                                                                                                                              

Problem Statement :

Working in HR domain, Sage gets resource requirement for specific job profiles with specific skillsets. Based on skillset and other factors like location experience etc, Sage starts searching for suitable candidates. Different teams come into picture at different stage, sourcing team is responsible for sourcing of CVs from all the platforms, KAM are responsible for approaching candidates via making and other mediums calls and taking interviews, followups, shortlisting and then the result is shared with client for the final process.

sage connectionThe problems faced by Sage was:

  • Lack of transparency of information to client regarding the job progress
  • Lack of trust on the performance data
  • Tracking the candidate progress by clients
  • Checking the performance of the sourcing team and key account managers in terms of actual hiring.

Sage was in need of a BI platform which could be used by different stakeholders like client, Sage internal team etc with different access and privilege. These teams once login, they can see their specific KPIs related to jobs, hires, interviews etc.

                                                                                 

Solution Developed :

Helical did handholding of the client and understood the requirement thoroughly. Once the same was over, we helped in deciding which BI suite to go for. We chose Jaspersoft BI tool. We used the Jaspersoft professional version which is hosted on AWS to develop the solution.

Also, we suggested to create separate reporting database using Postgres which will help the clients in fetching the reports and dashboards with minimal lag and much better performance.

Different kind of reports were developed with very interactive visualizations. Some of the reports which were developed are:

  • Weekly calling Report showing number of calls made by different KAM for different profiles
  • Candidate status Report showing profile wise status like how many candidates approached, how many interviews done, how many declined etc
  • Client engagement Report
  • Weekly Summary Report, etc.

 Also many dashboards were developed, some of which includes :

  • Sourcing Dashboard showing work done by sourcing team in getting CVs
  • Recruitment Manager Dashboard
  • Company Dashboard

Information related to calls made is coming from Ringcentral, information related to candidates, their skillset location company experience etc is coming from Maxhire.

All of these reports and dashboard were very interactive with input parameters. Based on those input parameters like (company name, date range, relationship manager etc) the entire report/dashboard data changes. Also various kind of visualizations were used like bar chart, candle stick, gauges, histogram etc to improve the readability.

Also these reports and dashboard were having the ability to drill down, which means as soon as we click on any of the panel, another panel will appear with detailed information, thus enabling the customer to do a deep down analysis. Also via email bursting, many of the reports were sent to different managers inbox in pdf/doc format.

Multi-tenancy was also implemented and proper user and role management was also implemented. Hence they were able to provide all of their customers separate user id and password, thus customers were able to access this hosted HR BI solution but they were restricted to see their own specific data only. Entire HR BI solution was hosted on Amazon Web Services.

Many functionality which were not directly available from Jaspersoft were also implemented by custom coding (like saving dashboard, rejection charts, saving input controls etc). This entire developed BI solution was integrated inside their website. Also the entire solution was also white labeled according to the companies color themes, text font, color etc.

Helical was also responsible for hosting this solution on AWS, and also doing an end to end performance tuning (SQL query optimization, cache memory increasing, hardware increasing etc.

                                                    

ETL and DW Work :

Sage haS primarily two data source – One is Maxhire : MySQL and the other one is RingCentral : Postgres). Maxhire was storing information related to CV, job profile, skillset, company details, candidate information, job posting, etc. Whereas Ringcentral database is holding the information related to calls made by KAM, response, duration, etc.

Helical was responsible for writing ETL and creating a datawarehouse. The ETL tool used was an open source ETL tool namely Talend Open Studio. Different types of ETL were written like Initial Load ETL, Change Data Capture (CDC) ETL, Maintenance ETL etc. These ETL were executing at different frequency some were on daily and some on weekly basis.

              

ETL Automation Activity Details :

To transfer the data from the Max Hire database to Postgres we ran the ETL process using the Talend Open Studio tool. Here we performed various types of ETL to achieve the requirement which are:

  1. Initial Load ETL : Here we had defined the properties like source and destination database, required table , format of data, etc. Then a transformation of the data in the required format is done. At last, loading of data in the Postgres database is performed.
  1. Change Data Capture (CDC) : It is performed on a daily basis to check the manipulation of the data in the source database. If happened then the updation in the destination database is also performed.
  1. Maintenance ETL : It is performed on a weekly basis to check the manipulation of the data. But it checks the data from start till date and then updation of the data in the destination is performed.
  1. RingCentral ETL : This ETL process helps in uploading the calling data records in the Postgres database. Whereas the input records are in excel format. It is performed on the weekly basis.

Activity includes :

  • Job scheduling : For updating the database source to destination database it is performed on a weekly basis.

The built HR BI solution by Helical is vigorously used by Sage internal team as well as its client and it is using this data analysis as one of its USP to sell more of its services. Not only this platform helped them to better serve their client but also they are more efficiently able to monitor the performance of different members of their team as well. Sage client retention has also improved drastically and they have become a heavy user of the data analysis capabilities of the build BI platform.

                   

Snapshots for BI solution :

sage_loginLogin Page

We have used here features like multi-tenancy, white-labelling

                                                                                                                                                                                                                                        Some Dashboards are :

  • Recruiting Dashboard

sage_Recruit_dash

  • Client Dashboard

Sage_Client Dashboard

  • Sourcing Dashboard

Sage_sourcing_Dashboard

  • Home Dashboard

Home Dashboard

  •   List of exporting/saving the reports in various formats

Saving report format

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Testimonial :

“Team Helical really did a excellent job building a world class BI solution for us. They helped us choose the right platform, work through our business cases and implement efficiently and effectively. They’re offshore so we were a bit apprehensive; however, they work during US hours and worked quickly. I would highly recommend Nitin and his team to anyone doing BI work”

–  Paul Grewal, CEO, Sage Human Capital

.

Case Study report on Envision Global using Helical Insights (HI)

envision logo

Case Study Report on

Envision Global Leadership (EGL)

using

Helical Dashboard Insights (HDI)

 

Customer :

Envision Global Leadership (EGL)

Geographical Location :

Los Angeles, California

Tools Used :

DB   :  MySQL

ETL :  Talend open studio

BI    :  Helical Dashboard Insight (HDI)

 

Company Overview :

Envision Global Leadership (EGL) is an institute having expertise in providing training on leadership development. Envision helps the organization seeking leadership development by providing training for mid to upper level executives. They also provide advance level training and certifications for the executive coaching skills. Moreover envision provides the thoughtful insights, tools for the organization to improve the organizational productivity.

Problem Statement :

Envision Global Leadership (EGL) provides training followed by an assessment report to individuals. For that, a test is conducted in the form of surveys using Limesurvey platform. The individual is required to answer the questionnaire and is rated between 1 to 5 for different parameters (like transparency, leadership, emotional quotient etc). The information is stored in the LimeSurvey database.

Envision needed a platform that could fetch data from LimeSurvey and create reports with data visualization, which could help the organization to understand strength and weakness and then invest in the skill set building.

Following are earlier problems faced by Envision :

  • The envision requirements are not met by other BI tools.
  • Difficulty in utilizing the data to find appropriate person for job.
  • Generated reports not meeting Envision requirements.
  • The required charts were not feasible to create
  • Conversion of stored data in LimeSurvey application into their format for reports

Solution Developed :

Helical did handholding of the client and understood the requirement thoroughly. Once the same was over, we have suggested to create a Reporting Database. Then with the help of Helical Dashboard Insights (HDI), which is a developer friendly Business Intelligence framework, through which client can view the reports with data visualization along with other features like exporting to PDF, email scheduling, user and role management, etc.

We had developed different kinds of report which includes interactive visualizations. Some of the developed reports are :

  • Self Assessment Report
  • Goal Setting Report
  • Multi Rater Leadership Report
  • Rollup Report
  • Comparison report, etc

All of the reports are very interactive. For data visualization, HDI not only allows us to use normally used charts but also advanced statistical and scientific charts. Also being a developer friendly platform using HDI we can, not only create a chart that is existing in the market but also can create an all together new chart. The same we did for Envision wherein we created a horizontal Candle Stick Whisker chart with additional information. This chart was introduced for the first time in a report for analysis.

On the above candle stick chart, on the basis of certain factors like Emotional Stability, Intellect, Agreeableness is rated between 1 to 5. For example, say 100 people contributed for the survey so a candle stick chart is generated separately for each user after login. The chart will differ for each user in terms of location of black dot and the horizontal stick size, maximum and minimum value, average is common for all the 100 users contributed.

 Here the black dot represent self-rating given by individual, Maximum and minimum represents the highest and lowest rating given for the factors, centre point of horizontal box represents the Average rating given by individuals and the left and right endpoints of brown and green box represents -1 SD to +1 SD where SD is Standard Deviation. This chart is mainly used for representing the large size of data.

Helical using HDI had provided the feature of User & role management in which the specific reports is viewed by the individuals of the organization. As shown in the snapshot below :

HDI login

HDI login

An individual from organization “A” had to type the name in organization box. Then type user name and password that for login. Then individual from organization “A” can view self reports. Only specific person from the organization is allowed to view all performance reports to take strategic decisions.

  • Also, HDI provides Multi-tenancy features, wherein the individual from different organizations are allowed to login by typing the organization name, username and password.
  • Using HDI platform, Admin user of the organization can edit the content using editing engine. Thus, this will help to produce report in customized manner.
  • HDI platform is providing the individual report files to be exportable, downloadable and e-mail schedulable. When exported using HDI platform pixel perfect reports are generated with indexing of pages, pagination etc taken care of automatically. 
  • HDI is a responsive to screen size, meaning on whichever device we are seeing the reports and data visualization, the solution will get adjusted according to screen size and the end user experience will not get hampered.

  • Editing Engine : HDI platform provides Admin user of the organization for editing the content like updating, deleting content through editing engine. Also, Admin user from non-technical background can easily use editing engine thus reducing dependency on technical person. The admin user had to follow steps given below. Thus, HDI platform helping the user in generating the report in a customized manner.

        Step 1:

       Step 2:

ETL and Other database work:

Envision Global Leadership (EGL) has two data sources (One is EGL database and LimeSurvey Database: MySQL). EGL was storing the information of the candidates got trained in their portal and LimeSurvey database is storing the survey result of the candidates.

Helical was responsible for writing the ETL and creation of Reporting database. The ETL tool used was an opensource ETL tool namely Talend and for Reporting database MySQL was used. Different types of ETL were written like Initial Load ETL, Change Data Capture (CDC) ETL, Maintenance ETL etc. These ETL were executing at different frequency, some were on daily and some on weekly basis. Also one of the data source was in excel format, on which we had run ETL and loaded the required tables into reporting database.

The advantages of reporting database creation are :

  • Excellent performance of the reports and dashboards (response time of rendering reports is <1 seconds )
  • Not affecting the transactional system database
  • Reporting database schema designed in such a way that in future it is ready to accommodate any changes, new tables, new surveys, etc.

ETL Automation Activity Details :

On HDI we had created a user friendly UI, through which a business user can himself also upload data, schedule ETL, define data connection, thus reducing the dependency on developers.

  • We had defined the various properties like setting the source and destination database which is required in order to run the ETL process.
  • Running the ETL process after defining the valid properties.
  • The ETL job pulls the data from source database and then in transformation data is being manipulated as per the requirement.
  • Then the loading of the data to the destination database is done.

 Other activity like :

  • Job scheduling : For updating the database it is performed like to update database from source to destination database.

Solution :

The solution provided by the Helical IT Solution using Helical Dashboard Insight is used by the Envision Global Leadership (EGL) which is helping the organization to provide the result with more accuracy to the user. This is helping the organization to know the scope of improvement of their employee to be the future leaders of the organization.

From the EGL point of view the HDI helping the EGL in getting the best out of their data with high quality of the reports. Hence Helical successfully fulfilled all the requirements of the Envision using Helical Data Insights (HDI) BI tool.

Snapshots for BI solution using Helical Dashboard Insight

envi_snap1

Candle Stick Chart for various factors

envi_snap3

envi_snap4

Radar_chart

Comparion_chart

Comparison Chart 2 ( >2 person comparison)

Saving the Report Format

Ways of saving Report

Introduction to “Helical Insights”

 

Helical Helical Insight is our own BI tool.

Helical Insight consists of different 5 layers:

hdi-map

1) Templating Layer:In this layer dashboard is defined.It is a end user interaction layerthis is realated to the JavaScript framework layer.

2) Javascript framework Layer:All the interaction with the Templating layer is done by this layer.It also communicate with the Data Layer and Visualization layer.The combination of Templating layer and Javascript framework layer forms a front end of a dashboard.

3) Data Layer:The main role of Data layer is to provide all data relaed information required by front end.

4) Visualization Layer:basically this layer generates a visualization and provides it to Front end.

5) Background Services:This layer manages the communication between Front end,Data layer and visualization layer.

Helical Insight consists of different file extensions:

Firstly create your own folder which can have multiple dashboards.

1).EFW file:This file is required for recognization of Dashboard ,it contains metadata about Dashboard.In this file ,we can define the template file(.html/.js) whichever we required in tag.

<?xml version=”1.0″ encoding=”UTF-8″ ?><efw>

<title>HDI Demo On LocalHost</title>

<author>Sayali</author>

<description>Sample Dashboard</description>

<icon>images/image.ico</icon>

<template>test.html</template>

<visible>true</visible>

<style>clean</style>

</efw>

2).EFWD file:This file contains related data,data connection(DataSource) and related to queries.

<EFWD><DataSources>

<Connection id=”1″ type=”sql.jdbc”>

<Driver>com.mysql.jdbc.Driver</Driver>

<Url>jdbc:mysql://192.168.2.9:3306/output_db_1216</Url>

<User>devuser</User>

<Pass>devuser</Pass>

</Connection>

</DataSources>

<DataMaps>

<DataMap id=”1″ connection=”1″ type=”sql” >

<Name>Sql Query on SampleData – Jdbc</Name>

<Query>

<![CDATA[select distinct sector as sector, sum(promo_value) as val  from Subbrand_Level where promo_value>0 andsector in (${sector})group by sector;]]>

</Query>

<Parameters>

<Parameter name=”sector” type=”collection” default='””‘/>

</Parameters>

</DataMap>

</DataMaps>

</EFWD>

 

 

3).EFWVF file:This file defines the visualization of Dashboard.It contains the Charts,table etc.It is a .xml file which is used while writing JavaScript Chart Components.

<charts><chart id=”1”>

<prop>

<name>Pie chart</name>

<type>custom</type>

<datasource>1</datasource>

<script>

<!CDATA[[console,log(data);]]

</script>

</prop>

</chart>

</charts>

 

4)Template file(.html): It is used to define components which are used in Dashboard.To set variable it requires some component configuration Dashboard.setVariable() and calls Dashboard.init().

Var component={}

Var components=[];

Dashboard.init(components);

 

 

 

Thanks,

Sayali Mahale

Session Management in Spring Security

Before we go to spring security session management let first understand what is session and why session is required.

Whenever we connect to any web server through URL, we use browser as client which uses a HTTP protocol for communication between browser and server. HTTP is a “stateless” protocol which means each time client receives a web page, the client opens a separate connection to web server and server automatically does not keep any record of previous client request that means for web server every request is a new request to process and they can’t identify if it’s coming from client that has been sending request previously. But sometime in web applications, we should know who client is and process the request accordingly.

Session is a conversional state between client and server and it consists of multiple request and response between client and server. Since HTTP protocol and web server both are “stateless” the only way to maintain a session is when some unique information about session like session id is passed between server and client in every request and response. In other words session is unique Id created by container to identify the user from whom the request in coming in

spring security.

Now we jump to how is session management takes place in spring security.

When is session created?
We can control exactly when our sessions get created and how spring security interact with it.
1. always – a session will always be created if one already does not exist
2. ifRequired – a session is created if required (Default).
3. never – a framework will never create a session itself. But it will use one if it already exists.
4. Stateless – no session is created or used by spring security.

<http create-session=”ifRequired”>….</http>

It is very important to understand that this configuration only controls what spring security does – not the entire application. Spring security may not create the session in we instruct it not to, but our application may!

By default spring security will create session when it needs one. This is ”ifRequired”
For a more “stateless” application, the “never” option will ensure that spring security itself will not create any session; however if application creates one, the spring security makes use of it.

Finally, the strictest session creation option – “stateless” – is guarantee that the application will not create any session at all.

Concurrent Session Control
When a user that is already authenticated tries to authenticate again, the application can deal with that event in one of a few ways. It can either invalidate the active session of the user and authenticate the user again with a new session, or allow both sessions to exist concurrently.

First step in enabling the concurrent session-control support is to add the following listener in the web.xml:

<listener>

<listener-class>

org.springframework.security.web.session.HttpSessionEventPublisher

</listener-class>

</listener>

 

This is essential to make sure that the Spring Security session registry is notified when the session is destroyed.

To enable the scenario which allows multiple concurrent sessions for the same user the element should be used in the XML configuration:

<http …>

<session-management>

<concurrency-control max-sessions=”3″ />

</session-management>

</http>
Session Timeout

After the session has timed out, if the user sends a request with an expired session id, they will be redirected to an URL configurable via the namespace:
<session-management>

<concurrency-control expired-url=”/sessionExpired.html” … />

</session-management>

Similarly, if the user sends a request with a session id which is not expired, but entirely invalid, they will also be redirected to a configurable URL:
<session-management invalid-session-url=”/invalidSession.html”>

</session-management>