Skip to content

SERG-UFPI/knowledge-islands

Repository files navigation

Knowledge-Islands

This tool is used to check the concentration of knowledge in software projects. The tool uses a combination of shell scripts to extract data from projects, therefore a Linux environment is necessary.

Prerequisites for use

Back end

  1. You have to install rugged and github-linguist gems in your system-wide ruby.
    On Ubuntu:
    sudo apt-get install build-essential cmake pkg-config libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev ruby-dev
    sudo /usr/bin/ruby -S gem install github-linguist
    sudo /usr/bin/ruby -S gem install rugged
  2. You have to install Cloc
    sudo apt install cloc

Front end

  1. Ensure you have Node.js installed, which includes npm (Node Package Manager).
  2. Navigate to the 'front-end' directory and run npm install to install all necessary dependencies.
  3. Use npm start to start the development server and npm run build to create a production build of the project.

Main endpoints

The application's endpoints can be used locally to extract data and compute project truck factors. The main endpoints to achieve these goals are:

  1. '/api/downloader/clone-repository': Clones a public repository into the folder specified by the 'configuration.permanent-clone.path' property in the 'application.properties' file.
  2. '/api/git-repository/generate-logs-repository/': Accepts the root path of a .git repository and generates .log files necessary for calculating the project's Truck Factor.
  3. '/api/truck-factor/save-full-truck-factor/': Takes the root path of a .git repository with pre-generated .log files and calculates and saves the repository's Truck Factor.
  4. '/api/git-repository-version-process/start-git-repository-version-process/': Combines the functionalities of the previous endpoints: cloning the repository, generating log files, and calculating and saving the Truck Factor.

The same controllers also include endpoints for performing these tasks on folders containing multiple repositories.

References

[1] Cury, Otávio, et al. "Identifying Source Code File Experts." Proceedings of the 16th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. 2022.
[2] Cury, Otávio, et al. "Source code expert identification: Models and application." Information and Software Technology (2024): 107445.
[3] Cury, Otávio, et al. "Knowledge Islands: Visualizing Developers Knowledge Concentration". Simpósio Brasileiro de Engenharia de Software (2024).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published