Project Overview
A team of Keyhole Software Consultants built a customer-facing analytics dashboard for an international leader in automotive data and software services. This project was performed under an aggressive deadline and was completed both early and under budget.
The goal of the project was to both build the analytics dashboard and make all data accessible through a REST API. The development team was also tasked with building a custom solution for user authentication using JWTs to control access based on user subscriptions through an API Gateway.
Technology Overview
The architecture/technology of the project was Spring Boot Microservices and React to build the UI.
For the microservice architecture and design portion of the project, consultants used Edge and API Gateway. Edge has a purpose for the routing and security, while API Gateway is an application that fronts downstream microservices.
During the project, Keyhole front end developers worked with various technologies including React with TypeScript, NPM/Yarn as a package manager, Material-UI for front-end components like textbox, buttons, and wizard. They also worked with Reach-Router, a tool that allows you to manage routes transition between different pages of the project. Axios was used to connect the front-end to the services to retrieve, create, and update data.
Overall, the main technologies used in this development include Java, Spring Boot/Spring Cloud, Redis, JSON Web Token (JWT), and Pivotal Cloud Foundry (PCF).
Consulting Areas Of Note
The technical lead was responsible for communicating the progress of the project, identifying the scope of the project, and making sure all deadlines were met. As the project progressed, the lead provided product demonstrations for the client to ensure each requirement was being fulfilled, then would relay the feedback to the team to make any necessary changes.
The development team was tasked with building a custom solution for user authentication using JWTs that controls access based on user subscriptions through an API Gateway. When it came to the external development for client access, they used an Opaque Authorization Token approach, as well as a Non-Opaque Token approach for the internal, or service to service, side of the project.
Much work was spent on the development of the Spring Boot services. This included the custom authentication solution in the API Gateway, as well as REST services and functionality for a custom CRM.
For database management, the team set up the project schema in Liquibase and used Redis to store access tokens. Then, for deployments, the team used Pivotal Cloud Foundry and their registry service for deploying the Microservices.
Certain key project members mainly focused on front-end development. They were responsible for taking all the mockup provided by the client and creating the user interfaces. They also concentrated on the overview dashboard along with the structure for all other dashboards. To do this, they utilized visualization technologies such as Recharts and react-simple-maps to draw out six key performance indicator line graphs, a geographical interactive map, and a heat map. These tools allowed the team to visually display the client data on the page.
The client was a multi-country company, so Keyhole was also responsible for making sure the subscription is added based on the country. i18next was used for internationalization and translating between multiple languages (Spanish, German, French, English, etc).