CART
CART: A Tool for Making Paper Relevancy Screening Easier - Published in JOSS (2024)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
CART (Culling Abstracts for Relevancy in Teams) provides a way for a team of individuals to complete the first step in most systematic review projects: culling, in teams, a large set of research papers (i.e., titles and abstracts) based on per-project relevancy criteria.
Basic Info
Statistics
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
Culling Abstracts for Relevancy in Teams
CART provides a way for teams of researchers to "cull" through a large set of papers when conducting a systematic reviewalso known as an "SoK." CART uses ngrok (a free service for temporary website creation), to zero-step the startup time for collaborative relevancy checkingyou may also run the service locally on localhost for testing or point a server at the service.
Documentation
Documentation for CART is available on Read the Docs.
Motivation
Let's assume you just started a new SoK project, like this one. The first step in the project will be to review conference publications from the past n years to determine if each paper is relevant to your SoK's particular topic. So you'd have a larger number of papers to review (something like n=10,000), and you will likely only be reading the titles and abstracts of these papers to determine relevancy; you also likely want one or more team members to review each paper (to get a less biased relevancy determination or split the work up). What you need is a way to review a large number of paper titles and abstracts, "vote" on the relevancy of each paper, and have a system to keep track of your votes.
Enter CART: a system for voting on a large number of abstracts in teams.
Functionality
CART allows teams of researchers to collaboratively vote on abstracts via ngrok (a unified ingress platform for developers), providing an ephemeral or static (flags in CART) website for researchers to conduct their relevancy checks. The program is simple to setup with anaconda:
git clone https://github.com/nathanReitinger/CART
cd CART
--UNIX: conda env create -f cart.yml
--WINDOWS: conda env create -f cart-windows.yml
conda activate cart
python3 cart.py -c user1 -c user2 <== two users, using localhost
CART places an emphasis on interpretability in coding. Information for each paper being voted on is stored in the /abstracts/ folder; these files can easily be inspected with a text editor, as opposed to a more formal database.
Architecture (in brief)
CART uses the Flask framework, and serves a variety of pages:
- Home: where users vote on abstracts
- Progress: how many papers have been voted on
- History: your votes per paper (allows you to change a vote as well)
- About: information about your project (editable by team members)
- Account: login and logout information
The primary cart.py program serves all web pages and updates abstracts located in the abstracts folder. Abstracts must follow an internal convention (more detail here). CART also provides a variety of gamifications to make the coding process easier (e.g., confetti on every nth abstract voted on).
Contributing
See our contributing guidelines, we'd love the help!
DEMO

Repo Structure
``
.
LICENSE.txt
README.md
abstracts // papers as <ID>.csv go here
-example_data_big // example papers (many of them!)
1.csv // formatted as <ID>.csv (ID like primary key)
...
99.csv
-example_data_small // example papers (few of them!)
1.csv
...
5.csv
-sample_from_scrape/ // folder output for get_data.py
-testing // folder used by test.py to run tests
cart.py // *************** main program *************** //
docs/ // documentation for readthedocs
info/ // "about" tab for information on relevancy assessment
mkdocs.yml // readthedocs
paper/ // JOSS
requirements.txt // install dependencies
sample_get_data/get_data.py// web scraper to populate sample paper data
static/ // images and CSS for web
templates // web page HTML files
history.html // past n abstracts you voted on (can change vote)
index.html // home (gamified voting experience)
info.html // "about" page editable by team members
progress.html // total votes cast and who cast them
start.html // "account" page for login and logout
testing/test.py // testing scripts forCART` app
```
Owner
- Name: Nathan Reitinger
- Login: nathanReitinger
- Kind: user
- Website: nathanreitinger.umiacs.io
- Repositories: 1
- Profile: https://github.com/nathanReitinger
Lawyer, computer scientist
JOSS Publication
CART: A Tool for Making Paper Relevancy Screening Easier
Tags
Flask ngrok HTML CSS SoK (systematization of knowledge) relevancy codingGitHub Events
Total
- Watch event: 1
- Fork event: 1
Last Year
- Watch event: 1
- Fork event: 1
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| nathanReitinger | n****r@g****m | 38 |
| temp-9384289 | a****5@g****m | 35 |
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 2
- Total pull requests: 0
- Average time to close issues: about 7 hours
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- atanikan (2)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Flask ==2.2.5
- Flask-Session ==0.5.0
- filelock ==3.4.0
- moment ==0.12.1
- ngrok-flask-cart ==0.0.5
- numpy ==1.21.6
- pandas ==1.3.3
- plotly ==5.18.0
- selenium ==4.11.2
- actions/checkout v4 composite
