Skip to content

Commit

Permalink
docs
Browse files Browse the repository at this point in the history
  • Loading branch information
TTangNingzhi committed Dec 26, 2023
1 parent 2f974bf commit e08a57f
Show file tree
Hide file tree
Showing 13 changed files with 202 additions and 85 deletions.
66 changes: 40 additions & 26 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

70 changes: 15 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,64 +3,24 @@
## What is CodeGRITS?

CodeGRITS stands for **G**aze **R**ecording & **I**DE **T**racking **S**ystem, which is a plugin specifically designed
for SE researchers. CodeGRITS is built on top of IntelliJ’s SDK, with wide compatibility with the
entire family of JetBrains IDEs to track developers’ IDE interactions and eye gaze data.
for empirical software engineering (SE) researchers. CodeGRITS is built on top of IntelliJ’s SDK, with wide
compatibility with the entire family of JetBrains IDEs to track developers’ IDE interactions and eye gaze data.

<div style="text-align: center;">
<img src="imgs/overview.png" style="width: 55%;">
</div>

## Key Features

- **Gaze and IDE Recording**: CodeGRITS records developers’ eye gaze data and
IDE interactions.
- **Screen Recording**: CodeGRITS records developers’ screen.
- **Research Toolkit**: CodeGRITS provides a set of extra features for SE
researchers, including preset labels, real-time data API, etc.
- **Gaze and IDE Recording**: CodeGRITS tracks developers’ IDE interactions and eye gaze data for further understanding
their behaviors.
- **Screen Recording**: CodeGRITS simultaneously records developers’ screen for visualizing their behaviors.
- **Research Toolkit**: CodeGRITS provides a set of extra features for empirical SE
researchers, including dynamic configuration, activity labeling, etc.
- **Data Export**: CodeGRITS exports data in XML format for further analysis.
- **Real-time Data API**: CodeGRITS provides real-time data API for further
development.

## Using CodeGRITS

### Python Environment

It is necessary to install the following packages in your python environment to run this plugin.

```
python==3.8.8
tobii-research==1.10.1
pyautogui==0.9.53
screeninfo==0.8
```

### Installation

1. Clone the [repository](https://github.com/codegrits/CodeGRITS) to your local machine.
2. Open command line and run `./gradlew build` in the root folder to build the plugin.
3. Open IntelliJ IDEA and click `File` - `Settings` - `Plugins` - `Install Plugin from Disk...` to install the plugin
zip file in `build/distributions` folder.
4. Restart IntelliJ IDEA to enable the plugin.
5. All CodeGRITS features are available in `Tools` dropdown menu, including `Start Tracking`, `Pause Tracking`,
and `Configuration`.

### Usage

!!!
Before starting tracking, you should first configure the plugin. Click `Tools` - `CodeGRITS` - `Configuration` to open
the configuration window. To enable eye tracking,
you need to have the necessary Python packages installed in your Python environment. The plugin automatically checks the
Python environment.

We highly recommend
using [Tobii Pro Eye Tracker Manager](https://www.tobii.com/products/software/applications-and-developer-kits/tobii-pro-eye-tracker-manager#downloads)
to conduct calibration before using eye tracking.
!!!

1. Click `Tools` - `CodeGRITS` - `Start Tracking` to start tracking.
2. Click `Tools` - `CodeGRITS` - `Pause Tracking` to pause tracking.
3. Click `Tools` - `CodeGRITS` - `Resume Tracking` to resume tracking.
4. Click `Tools` - `CodeGRITS` - `Stop Tracking` to stop tracking. The plugin will export data in XML format to the
configured folder.

## Further Development

1. Click `Run` - `Run Plugin` to run the plugin and test it.
2. Open command line and run `./gradlew build` to build the plugin.
3. Get the plugin zip file in `build/distributions` folder.
- **Cross-platform**: CodeGRITS provides cross-platform support for Windows, macOS,
and Linux, and is compatible with the entire family of JetBrains IDEs (e.g., IntelliJ IDEA, PyCharm, PhpStorm, etc.).
- **Multilingual Support**: CodeGRITS could extract the abstract syntax tree (AST) structure of eye gazes on multiple
programming languages, including Java, Python, C/C++, JavaScript, etc.
7 changes: 6 additions & 1 deletion API Reference.md → docs/api-reference.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
# Real-time Data API Reference
---
icon: gear
order: 70
---

# Real-time Data API

## Overview
We provide a real-time data API for future plugin developers and researchers to get the real-time data from IDE tracker and eye tracker separately. The API is based on the [IDE Tracker](#ide-tracker) and [Eye Tracker](#eye-tracker).
Expand Down
31 changes: 31 additions & 0 deletions docs/citation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
label: Citation & Demonstration
icon: pencil
order: 60
---

# Citation

CodeGRITS has been accepted
by [ICSE 2024 Demonstrations Track](https://conf.researchr.org/track/icse-2024/icse-2024-demonstrations).
The PDF version of the paper is available [here](https://arxiv.org/abs/xxxx.yyyyy).
Please cite the following paper if you use CodeGRITS in your research.

```bibtex
@inproceedings{tang2024codegrits,
title={CodeGRITS: A Research Toolkit for Developer Behavior and Eye Tracking in IDE},
author={Tang, Ningzhi and An, Junwen and Chen, Meng and Bansal, Aakash and Huang, Yu and McMillan, Collin and Li, Toby Jia-Jun},
booktitle={46th International Conference on Software Engineering Companion (ICSE-Companion '24)},
year={2024},
organization={ACM}
}
```

# Demonstration

We have also prepared a video demonstration of CodeGRITS for ICSE 2024.

[!embed](https://www.youtube.com/embed/d-YsJfW2NMI)



Binary file added docs/imgs/eye-tracking.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/ide-tracking.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file added docs/imgs/overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/visualization.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions Output Format.md → docs/output.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
id: Output Format
icon: file-code
order: 80
---


# Output Format

## Output Directory Structure
Expand Down
66 changes: 66 additions & 0 deletions docs/usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
id: Usage Guide
icon: book
order: 90
---

# Usage Guide

### Python Environment

It is necessary to install the following packages in your python environment to run this plugin.

```
python==3.8.8
tobii-research==1.10.1
pyautogui==0.9.53
screeninfo==0.8
```

### Installation

1. Clone the [repository](https://github.com/codegrits/CodeGRITS) to your local machine.
2. Open command line and run `./gradlew build` in the root folder to build the plugin.
3. Open IntelliJ IDEA and click `File` - `Settings` - `Plugins` - `Install Plugin from Disk...` to install the plugin
zip file in `build/distributions` folder.
4. Restart IntelliJ IDEA to enable the plugin.
5. All CodeGRITS features are available in `Tools` dropdown menu, including `Start Tracking`, `Pause Tracking`,
and `Configuration`.

### Usage

!!!
Before starting tracking, you should first configure the plugin. Click `Tools` - `CodeGRITS` - `Configuration` to open
the configuration window. To enable eye tracking,
you need to have the necessary Python packages installed in your Python environment. The plugin automatically checks the
Python environment.

We highly recommend
using [Tobii Pro Eye Tracker Manager](https://www.tobii.com/products/software/applications-and-developer-kits/tobii-pro-eye-tracker-manager#downloads)
to conduct calibration before using eye tracking.
!!!

1. Click `Tools` - `CodeGRITS` - `Start Tracking` to start tracking.
2. Click `Tools` - `CodeGRITS` - `Pause Tracking` to pause tracking.
3. Click `Tools` - `CodeGRITS` - `Resume Tracking` to resume tracking.
4. Click `Tools` - `CodeGRITS` - `Stop Tracking` to stop tracking. The plugin will export data in XML format to the
configured folder.

## Further Development

1. Click `Run` - `Run Plugin` to run the plugin and test it.
2. Open command line and run `./gradlew build` to build the plugin.
3. Get the plugin zip file in `build/distributions` folder.

## Example Output

Here is one example of part of the output data, i.e., the IDE interactions and eye gaze data of a developer.
[Output Format](Output%20Format.md) page provides a complete description of the output data.

<div style="text-align: center;">
<img src="/docs/imgs/imgs/ide-tracking.png" style="width: 80%;"><br><br>
<img src="/docs/imgs/imgs/eye-tracking.png" style="width: 80%;"><br><br>
</div>

The source code of CodeGRITS is
also publicly available on [GitHub](https://github.com/codegrits/CodeGRITS).
35 changes: 35 additions & 0 deletions docs/welcome.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
label: Welcome
icon: home
order: 100
---

# Welcome to CodeGRITS

CodeGRITS stands for **G**aze **R**ecording & **I**DE **T**racking **S**ystem, which is a plugin specifically designed
for empirical software engineering (SE) researchers. CodeGRITS is built on top of IntelliJ’s SDK, with wide
compatibility with the entire family of JetBrains IDEs to track developers’ IDE interactions and eye gaze data.

<div style="text-align: center;">
<img src="imgs/overview.png" style="width: 55%;">
</div>

## Key Features

- **Gaze and IDE Recording**: CodeGRITS tracks developers’ IDE interactions and eye gaze data for further understanding
their behaviors.
- **Screen Recording**: CodeGRITS simultaneously records developers’ screen for visualizing their behaviors.
- **Research Toolkit**: CodeGRITS provides a set of extra features for empirical SE
researchers, including dynamic configuration, activity labeling, etc.
- **Data Export**: CodeGRITS exports data in XML format for further analysis.
- **Real-time Data API**: CodeGRITS provides real-time data API for further
development.
- **Cross-platform**: CodeGRITS provides cross-platform support for Windows, macOS,
and Linux, and is compatible with the entire family of JetBrains IDEs (e.g., IntelliJ IDEA, PyCharm, PhpStorm, etc.).
- **Multilingual Support**: CodeGRITS could extract the abstract syntax tree (AST) structure of eye gazes on multiple
programming languages, including Java, Python, C/C++, JavaScript, etc.

<div style="text-align: center;">
<img src="imgs/visualization.png" style="width: 80%;"><br><br>
</div>

5 changes: 2 additions & 3 deletions retype.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
input: .
input: ./docs
output: .retype
url:
branding:
title: CodeGRITS
# label: Docs
logo: /src/resources/pluginIcon.svg
logo: imgs/logo.png

footer:
copyright: "&copy; Copyright {{ year }}. All rights reserved."

0 comments on commit e08a57f

Please sign in to comment.