Web site to visualize code quality trends (maintainablity index, cyclcomatic complexity, lines of code, code coverage, code churn). The metrics are collected by two of my other data collector applications.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CodeQualityPortal.IntegrationTests
CodeQualityPortal.UnitTests
CodeQualityPortal
.gitattributes
.gitignore
CodeQualityPortalMaster.sln
README.md

README.md

#Code Quality Portal

This web site is part of code quality solution to visualize the following metrics:

  • Maintainablity index
  • Cyclomatic complexity
  • Lines of code
  • Depth of inheritance
  • Class coupling
  • Code coverage with breakdown by system, repo or team and further drilldown by modules
  • Code churn
  • Branch diff feature to compare metrics of two source control branches on a given date
  • Module lookup

Data is aggregated and can be drilled down through this hierarchy:

  • Source control branch
  • System
  • Module (assembly)
  • Namespace
  • Type (class)
  • Member

Module is associated with repo, can be in multiple systems and it is owned by a team.

Here is the overall picture of the solution components:

CodeQ

  1. Assembly that is being instrumented
  2. Microsoft Metrics Power Tool
  3. Xml file generated by the Power Tool
  4. Assembly with unit tests
  5. Nunit console runner
  6. OpenCover code coverage tool which runs Nunit
  7. Xml file generated by OpenCover
  8. Report Generator knows how to parse OpenCover input
  9. Summary xml produced by the Report Generator
  10. Code Metrics Loader utility that I wrote to merge metrics produced by the Power Tool with code coverage
  11. Code Churn Loader my utility to collect code churn from Github or Bitbucket hosted repos
  12. Database with two fact tables for metrics and code churn and shared date dimension
  13. This repo

##Technology stack

  • EF Code First
  • ASP.Net MVC
  • Web API
  • Angular JS
  • Wijmo

There is demo data initializer and the site should run right out of the box as long as SQL Server 2012 Express LocalDB is installed.

We have been using this portal to track production code quality metrics since 2014.