Skip to content

Code Compass - Toward Knowledge Systems in Software Engineering

License

Notifications You must be signed in to change notification settings

zimengq/CodeCompass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Compass

A knowledge-based explorable search engine providing all-round information for software developement.

  • build connetions among domain-specific information, like code structure, history and PR
  • provide explorable UI to get the information for software development

Features

  • search C/C++ components (struct/function/class) by keywords
  • present structural information, like associations among code blocks
  • present developer information of lines of code
  • present PR information of lines of code

Design

  • explorable UI with high-level interactivity and density of information

    • given a keyword, interactively presenting connectivity of components which declaration contains the keyword
    • interactively presenting code blocks of the component
    • interactively presenting developers for the code block
    • interactively presenting PR infos for the code block
  • scalable backend associating code structure, history and PR by linking them with a line of code

    • given a set of C/C++ repos (code base), establishing index of these repos according to their component (struct/function/class) declarations
    • associating between a line of code and components (struct/function/class) via code graph
    • associating between a line of code and developers via analyzing commit history
    • associating between a line of code and PR info via bugzilla(vmware) or github(open source)

Prospects

  • getting reusable code blocks from the code base with keywords
  • inferring quality of the code block by evaluating its developers
  • recommending developers who are suitable for writing a component from zero

How it works

1. Prepare Environment

  • Ubuntu 16.04 and Python3 32bit and 8GB RAM

  • Install Packages

    $ sudo apt install git
    $ cd ~
    $ git clone https://github.com/ch-chiu/CodeCompass.git
    $ cd ~/CodeCompass/compass/setup
    $ python install.py
    

2. Generate Tmp Files

  • change the home path for data in ~/CodeCompass/compass/setup/data_path.py

(You can only replace user0 with your own username or replace the whole path with the path you want to store the files.

You only need to change the path at this place.)

  • setup compass3.0

    $ cd ~/CodeCompass/compass/setup
    $ python setup.py
    

3. Run Service

  • run flask app

    $ cd CodeCompass/compass/webApp
    $ sudo python app.py
    
  • access IP with Chrome

About

Code Compass - Toward Knowledge Systems in Software Engineering

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •