Skip to content

rodrigo-brito/gocity

Repository files navigation

GoCity

Actions Status codecov Go Report Card GoDoc License MIT


Available here: https://go-city.github.io

Research Paper: 26th International Conference on Software Analysis, Evolution and Reengineering (SANER)
PDF Version: ASERG Page

GoCity is an implementation of the Code City metaphor for visualizing source code. GoCity represents a Go program as a city, as follows:

  • Folders are districts
  • Files are buildings
  • Structs are represented as buildings on the top of their files.

Structures Characteristics

  • The Number of Lines of Source Code (LOC) represents the build color (high values makes the building dark)
  • The Number of Variables (NOV) correlates to the building's base size.
  • The Number of methods (NOM) correlates to the building height.

Installation

  • go install github.com/rodrigo-brito/gocity@latest
  • Or just head to the releases page and download the latest version for you platform.

Usage:

  • Online: https://go-city.github.io
  • Commands
    • gocity server - Start server
    • gocity open <GITHUB_IMPORT> - Open a specific Github project from github
    • gocity open ./my-project - Open a local directory

UI / Front-end

The UI is built with React and uses babylon.js to plot 3D structures. The front-end source code is available in the front-end branch.

Related Works

This tool makes part of a scientific research developed at Federal University of Minas Gerais (UFMG)
Student: Rodrigo Brito
Advisor: Marco Tulio Valente