Challenge Overview
Challenge Overview
-
Create a PoC Sonarqube plugin to extract the metrics from JSON files and save to sonarqube, and then visualize the results inside the sonarqube UI.
Project background
The client has a tool to measure various metrics of a website and generate reports to visualize the results in browser.
Now they want to integrate this tool with their ci process. The tool will be called by the Jenkins to collect the metrics data and store in JSON files, and then sonarqube scanner is executed to parse the metrics data from JSON files and save into sonarqube. So user can visualize the metrics data in sonarqube UI directly.
Technology Stack
-
SonarQube 8.1
-
SonarQube Plugin (use Maven and Java to develop the plugin and use the reactjs to develop the UI pages). You can find some examples here: https://github.com/SonarSource/sonar-custom-plugin-example
Individual Requirements
The tool now generates html reports directly, and it will be changed to generate JSON files, which can then be used by this plugin.
In this PoC you should define reasonable JSON formats for the data displayed in the html reports, and then implement the plugin to parse and save the data into sonarqube.
And then you need to create the UI to display the data in sonarqube. The UI can be simple as it’s only a PoC, but the data should match the provided html reports.
The html reports will be provided in the forum, and you can see there are 3 tabs.
-
Chrome Profile Timeline tab
-
Chrome Profile Current Status tab
-
Lighthouse Report
And you can click the URL to view a detailed report. (This report contains some screenshots, which seems impossible to save to sonarqube, you can skip them if so).
Final Submission Guidelines
Submission Deliverable
-
Source code
-
Deployment guide and verification guide