Skip to content

LeenJooken/CollaborationVisualizer

Repository files navigation

# Collaboration Visualizer

The Collaboration Visualizer is a project that extracts and constructs a collaboration graph from a VCS log.


## Supported input formats

Two input formats are supported:
  *a VCS log transformed into an event log
  *a plain text file generated by the Tortoise SVN system

The code will parse the correct input format based on the extension. No other function has to be explicitly called.

How to transform a VCS log into an event log that is supported by the program:
  *Case ID = File ID
  *Activity Type = "Commit"
  *Time stamp = time stamp of the commit
  *Resource = programmer that committed the file
  *Other required attributes: modifier status, revision number

The transformation to the event log structure is characterized by the following. Every file becomes a case, which implies that the file ID serves as case ID.
Every commit by a programmer on that file becomes an event, with ``Commit'' as the activity type, the time stamp of the commit as time stamp, and the programmer that carried out the commit as resource.
Further, it is important that two additional attributes are included for every event: the revision number and the modifier status, which indicates if the file in question was added, modified or deleted in that commit.

The structure of the event log will then be: Every programmer that did a commit on a file at a certain point in time will be a record in the event log.
Example:
/  Case ID  /   Activity Type   /          time:timestamp           /   org:resource   /   revision   /   modifierStatus   /
----------------------------------------------------------------------------------------------------------------------------
/     1     /     "Commit"      /   Monday 25 March 2019 12:03:03   /  programmerName  /     255      /     "Modified"     /


## Supported output formats
The program constructs a collaboration graph, which can be written to CSV files: 1 file for the edges, 1 file for the nodes.
The node file has columns for: node ID, node label, weight, boolean indicating if the node represents a cluster of programmers
The edge file has columns for: source node ID, target node ID, weight, string indicating is the edge is directed or undirected, string indicating the collaboration type


## Usage

```python
Main.py -s VCSlog.txt -nf nodes.csv -ef edges.csv
```
Possible arguments:
-s [VCS source file to be read; possible extensions: .txt, .XES]
-nf [file name of the output CSV file that will contain the nodes]
-ef [file name of the output CSV file that will contain the edges]

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License
MIT License

Copyright (c) [2019] [Leen Jooken]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages