This repository forks the Indy Survey Tool and introduces a number of changes for web responsiveness and flexibility of the survey dataset format. Since the overall style is different than that of the original, we host it separately. Big props to the folks at the Khoury Vis Lab for their initiative.
npm install
installs all the libraries you need to get the app running using the list frompackage.json
.npm run build
updates and exportsindex.html
, and the files indist/assets
for a static website.npm run dev
the site locally (see link to localhost) in development mode (updates to src files reload the site).
The easiest method of uploading survey papers in bulk is using our CSV converter, but it is also possible to add papers individually.
- Create an export of your corpus:
- Create an export from your library manager (e.g. Zotero, Airtable, Notion)
- Save the file to the
src/data
directory with the name Survey-Info.csv. - Add your taxonomy columns as headers and values as either lists of strings (comma separated), or marks ("x") for values that apply.
Name
,Year
,Authors
(comma separated),DOI
, andBibtex
are required.
- Create the config and data json files:
- Modify the dictionaries
includeProp
,categories
, andgroups
insrc/data/create-jsons.py
to match your taxonomy columns. This depends on your columns from the previous step:- If the column name matches an entry in
includeProp
, it will look for values directly (as list of comma separated strings) - If the column name is not in
includeProp
, it will look forx
and create lists based on the headers using thecategories
dictionary. - Finally, the
groups
dictionary specifies the grouping of filters in the website as dictionary values, and thus the keys should match the keys ofincludeProp
.
- If the column name matches an entry in
- Run the script to generate survey-data.json and survey-config.json --- WARNING: The script deletes the existing files---if entries have been manually added to these files, they will be lost.
python3 create-jsons.py
- The script prints out warnings for empty fields from the
includeProp
dictionary. You may use this to enforce value combinations (e.g. "at least one column from group A and one from group B"), or to identify edge cases.
- Modify the dictionaries
- Build the website as explained in Running the Webpage to see the created entries.
To add papers one-by-one, open src/data/survey-data.json. Then, add a new paper object to the list under the "data"
tag using the template below as a guide. Note that the "Name"
, "Year"
, "Authors"
, "DOI"
, and "Bibtex"
tags are required, but more can be added.
"data": [ // array of paper objects
{
"Name" : "[Poster] Visualization of solar radiation data in augmented reality",
"Year" : "2014",
"Bibtex" : "'@INPROCEEDINGS{6948437,\n author={Beatriz Carmo, Maria and Cl\u00e1udio, ....",
"DOI" : "10.1109/ISMAR.2014.6948437",
"Authors": [
"M. Beatriz Carmo; A. P. Cl\u00e1udio; A. Ferreira; A. P. Afonso; ...."
]
},
]
If your survey papers are categorized by some tag, <NEW_TAG>
, you should follow these steps to ensure it is displayed properly on the webpage:
- Open src/data/survey-data.json.
- Under
"meta"
, add a new object defining the properties of this tag:Note that the type of the tag affects what a user of your webpage sees when they go to add a new paper using the "Add Entry" button at the top right.{ "name": "NEW_TAG", "type": "MultiSelect" // categorization type: String or MultiSelect },
String
allows the user to enter a string, whereasMultiSelect
gives the user a dropdown of options to choose from. The options will be all the values in current papers. - Add the same information to the
includeProp
dictionary at the top of convertCSVtoJson.py if you intend to use the bulk paper import method.
Many aspects of the webpage, including colors, filter groups, tags on papers, and displayed icons are fully customizable.
src/data/survey-config.json contains most of the configuration options for the webpage. It is structured as follows:
{
"filterBy" : [], // defines custom categories that can be used to filter the papers
"detailView" : [], // information displayed when a paper is clicked by the user
"summaryView": [], // information displayed in the paper view center panel
"topView" : [] // information displayed in the top panel of the webpage
}
To change what is displayed when a user clicks on a specific paper, open src/data/survey-config.json and navigate to the "detailView"
tag. Under "show"
, a list of paper properties to be displayed when the paper is clicked can be provided. By default, the following properties are shown:
- Name
- Authors
- Year
- DOI
- BibTeX
Open src/data/survey-config.json and navigate to the "topView"
tag. Here, important information displayed in the top panel can be modified:
"title"
: title of the survey displayed at the top of the webpage"description"
: survey description"authors"
: survey authors"addEntry"
:"description"
: text displayed at the top of the Add Entry window"github"
: link to the survey GitHub repository, where users may open a GitHub issue to request that a paper be added
These strings can all be provided directly when executing the create-jsons.py
script.