Awesome
<img width="350" src="https://raw.githubusercontent.com/rodrigo-brito/gocity/master/pkg/server/assets/logo.png" alt="GoCity" /><a href="https://opensource.org/licenses/MIT"> <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License MIT"> </a>
<hr />Available here: https://go-city.github.io
Research Paper: 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) <br>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 servergocity open <GITHUB_IMPORT>
- Open a specific Github project from githubgocity 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)<br/> Student: Rodrigo Brito<br/> Advisor: Marco Tulio Valente