|
1 | | -# Getting Started |
| 1 | +# CodeGRITS |
2 | 2 |
|
3 | | -## What is CodeGRITS? |
| 3 | +[[Website]](https://codegrits.github.io/CodeGRITS/) [[Paper]](https://arxiv.org/abs/xxxx.yyyyy) [[Demo Video]](https://www.youtube.com/watch?v=d-YsJfW2NMI) |
4 | 4 |
|
5 | | -CodeGRITS stands for **G**aze **R**ecording & **I**DE **T**racking **S**ystem, which is a plugin specifically designed |
6 | | -for empirical software engineering (SE) researchers. CodeGRITS is built on top of IntelliJ’s SDK, with wide |
7 | | -compatibility with the entire family of JetBrains IDEs to track developers’ IDE interactions and eye gaze data. |
| 5 | +[CodeGRITS](https://codegrits.github.io/CodeGRITS/) stands for **G**aze **R**ecording & **I**DE **T**racking **S**ystem, |
| 6 | +which is a plugin specifically designed |
| 7 | +for software engineering (SE) researchers, which is developed by the [SaNDwich Lab](https://toby.li/) at the |
| 8 | +[University of Notre Dame](https://www.nd.edu/). CodeGRITS is built on top |
| 9 | +of [IntelliJ Platform SDK](https://plugins.jetbrains.com/docs/intellij/welcome.html), with wide compatibility with the |
| 10 | +entire family of [JetBrains IDEs](https://www.jetbrains.com/) and [Tobii eye-tracking devices](https://www.tobii.com/), |
| 11 | +to track developers’ IDE interactions and eye gaze data. |
8 | 12 |
|
9 | 13 | <p align="center"> |
10 | 14 | <img src="./docs/imgs/overview.png" width="600"> |
11 | 15 | </p> |
12 | 16 |
|
| 17 | +The data collected by CodeGRITS can be used by empirical SE researchers to understand the behaviors of developers, |
| 18 | +especially those related to eye gaze. CodeGRITS also provides a [real-time data API](developer.md) |
| 19 | +for future plugin developers and researchers to design context-aware programming support tools. |
| 20 | + |
13 | 21 | ## Key Features |
14 | 22 |
|
15 | | -- **Gaze and IDE Recording**: CodeGRITS tracks developers’ IDE interactions and eye gaze data for further understanding |
16 | | - their behaviors. |
17 | | -- **Screen Recording**: CodeGRITS simultaneously records developers’ screen for visualizing their behaviors. |
18 | | -- **Research Toolkit**: CodeGRITS provides a set of extra features for empirical SE |
19 | | - researchers, including dynamic configuration, activity labeling, etc. |
20 | | -- **Data Export**: CodeGRITS exports data in XML format for further analysis. |
21 | | -- **Real-time Data API**: CodeGRITS provides real-time data API for further |
22 | | - development. |
23 | | -- **Cross-platform**: CodeGRITS provides cross-platform support for Windows, macOS, |
24 | | - and Linux, and is compatible with the entire family of JetBrains IDEs (e.g., IntelliJ IDEA, PyCharm, PhpStorm, etc.). |
25 | | -- **Multilingual Support**: CodeGRITS could extract the abstract syntax tree (AST) structure of eye gazes on multiple |
26 | | - programming languages, including Java, Python, C/C++, JavaScript, etc. |
| 23 | +- 🔍 **IDE Tracking**: CodeGRITS tracks developers’ IDE interactions, including mouse clicks, keyboard inputs, etc. |
| 24 | +- 👁️ **Eye Tracking**: CodeGRITS tracks developers’ eye gaze data |
| 25 | + from [Tobii eye-tracking devices](https://www.tobii.com/), and mapping them to corresponding source code elements. |
| 26 | +- 💻 **Screen Recording**: CodeGRITS simultaneously records developers’ screen for visualizing their behaviors. |
| 27 | +- 🔨 **Research Toolkit**: CodeGRITS provides a set of extra features for empirical SE |
| 28 | + researchers, including dynamic configuration, activity labeling, real-time data API, etc. |
| 29 | +- 🗃️ **Data Export**: CodeGRITS exports data in XML format for further data analysis. See [Data Format](data.md) |
| 30 | + for more details. |
| 31 | + |
| 32 | +### Cross-platform and Multilingual Support |
| 33 | + |
| 34 | +- [x] CodeGRITS provides cross-platform support for Windows, macOS, |
| 35 | + and Linux, and is expected to be compatible with the entire family of JetBrains IDEs, including IntelliJ IDEA, |
| 36 | + PyCharm, WebStorm, etc. |
| 37 | +- [x] CodeGRITS could extract the abstract syntax tree (AST) structure of eye gazes on multiple |
| 38 | + programming languages, as long as the IDE supports them, including Java, Python, C/C++, JavaScript, etc. |
| 39 | + |
| 40 | +## Usage Guide |
| 41 | + |
| 42 | +Please see the [CodeGRITS website](https://codegrits.github.io/CodeGRITS/) for more details. |
| 43 | + |
| 44 | +## Citation |
| 45 | + |
| 46 | +[//]: # (TODO: Update the citation and PDF link after the paper is published.) |
| 47 | + |
| 48 | +The paper of CodeGRITS has been accepted |
| 49 | +by [ICSE 2024 Demonstrations Track](https://conf.researchr.org/track/icse-2024/icse-2024-demonstrations). |
| 50 | +The PDF version is available [here](https://arxiv.org/abs/xxxx.yyyyy). |
| 51 | +The [video demonstration](https://www.youtube.com/watch?v=d-YsJfW2NMI) is available on YouTube. |
| 52 | + |
| 53 | +Please cite the following if you use CodeGRITS in your research. |
| 54 | + |
| 55 | +```bibtex |
| 56 | +@inproceedings{tang2024codegrits, |
| 57 | + title={CodeGRITS: A Research Toolkit for Developer Behavior and Eye Tracking in IDE}, |
| 58 | + author={Tang, Ningzhi and An, Junwen and Chen, Meng and Bansal, Aakash and Huang, Yu and McMillan, Collin and Li, Toby Jia-Jun}, |
| 59 | + booktitle={46th International Conference on Software Engineering Companion (ICSE-Companion '24)}, |
| 60 | + year={2024}, |
| 61 | + organization={ACM} |
| 62 | +} |
| 63 | +``` |
| 64 | + |
| 65 | +## Contact us |
| 66 | + |
| 67 | +Please feel free to contact Ningzhi Tang at [email protected] or Junwen An at [email protected] |
| 68 | +if you have any questions or suggestions. |
0 commit comments