Implementing usability features on ROXIE Enabled Business Intelligence (REAL-BI)
Lohith Rajesh is a Masters student from Clemson University, studying computer science. He was born and grew up in Bangalore, India, completing a Bachelor of Engineering in Computer Science in 2015. On graduating, he joined Thomson Reuters as a software engineer, working there for over 3 years before deciding to continue with further academic study at Clemson University. Find out more about Lohith on his website.
Lohith joined the LexisNexis Corporate Intern Program in 2020. He has been working with our colleagues Jerry Jacobs, (Manager, Software Engineering) and Chris Human (Software Engineer II) on the ROXIE Enabled Business Intelligence (Real BI) project. This project sits very nicely alongside the HPCC Systems Platform and Lohith’s work provides some valuable usability features for the Real BI project that will enhance the user experience.
In this blog, Lohith shares his experience and achievements.
About the project
Real BI has the versatility to be used with any graphable dataset. It allows users to easily connect to an HPCC Systems cluster and create visualizations of their datasets for analytical purposes. To contribute to this project, I needed to use ReactJS, NodeJS and Webpack which were completely new to me, so I spent sometime becoming familiar with them and learning deeper insights that would help me achieve my goals. Also I did not have much prior experience of working on a front end technology, so this internship was going to help me plug that gap in my knowledge and I looked forward to the challenges ahead.
Creating the Webpack Configuration
First, I worked on the Webpack configuration so that the React application was converted to much more browser compatible es5 code, which is supported by most browsers.
Creating the Webpack configuration allowed the application to be converted into ES5 code so that it can be used in other types of environments. I created a wrapper component to fetch the incoming data from HTML. I also performed the authentication internally and handled the authentication header. Later, the converted es5 bundle would be imported inside an html script tag to use it in platforms like HTML and CSS.
Getting familiar with web pack configuration was a major task for completing my project and I really enjoyed it as I got deeper insights and expanded my knowledge.
Designing the Wrapper Class
After implementing the configuration, I designed a wrapper class to access the Real BI application.
One of the features I worked on was to generate a dashboard link and trigger an email to the given recipient address. This needed to be an automated process. I also added the user email suggestion by fetching the email details from the server.
Once the recipients email id has been added, the backend generates the dashboard link along with dashboard id and shares it with the recipient.
Share-Link allows users to share a dashboard link with other users. In a future version, the dashboard contents shared with a user will be available to be added to their dashboards.
Implementing a HeatMap Chart
Another feature I implemented was a HeatMap chart, which allows users to create a new type of chart that takes the data from HPCC Systems clusters and displays it.
I wrote a component that takes the data and converts it to the required format to display the HeatMap chart.
I also added the ability to rename the axis labels with user provided custom names making the application easier to use and more flexible for users who want to specify axis names that represent the data more intuitively. If no axis labels are provided, the default names are displayed.
Reflections on my Experience
I really enjoyed my internship and the challenges that extended my knowledge and experience. These are the main takeaways:
- Learning React JS and Node JS by completing my Real BI project
- Work with extremely intelligent individuals
- Refined my coding skills into software engineering within a much larger scale
I would like to thank all the members of the Real BI team for helping me grow as a software engineer, with special thanks to Chris Human and Jerry Jacob.