- Make sure that you have NVM installed.
- Clone the Repo onto your local machine using your choice of git cloning methods.
- cd into the src folder.
- Run a npm install from the terminal to download all the required node modules.
- Start the app in development mode with
npm start
. - Open http://localhost:3000 to view it in your browser.
Note that the app was initially created with Create React App.
SensDat is deployed as a static website at (sensdat.cs.vt.edu)[sensdat.cs.vt.edu]. Steps to push new code:
- Open up your terminal, navigate to the top-level SensDatfolder, and build the code locally via
npm run build
. - If you're not on VT's network, use Pulse Secure to proxy.
- Now we'll use the
sftp
command to transfer the build files to the server!- Run
sftp [email protected]
(or if you have another username) and enter the password. - Run
cd sensdat
. - Run
put -r build
.- NOTE: This will clobber whatever's currently in the directly
build
on the server with the localbuild
directory. If you're not sure you want to clobber the oldbuild
directory, you canssh
in to the server and copy it to to the directorysensdat/old_builds/
as backup.
- NOTE: This will clobber whatever's currently in the directly
- Run
- That's it!
NOTE: This may not be exhaustive or up-to-date. Please update as needed :)
index.js
This contains the root component of the app. Good for getting a high-level view of how all the components are assembled.app-state.js
This file is for managing the "app-state", i.e., a blob of state that is initialized inindex.js
and passed down/shared with all the subcomponents. This file also has various functions for mutating the app-state. Most state needed by multiple components should live and be managed here.
viz-view.js
for development on the main data visualization.viz-data-editor.js
for development on the edit data section of the visualization.upload-layout.js
for development on uploading a site layout to display on the visualization.
data-view.js
for the component that houses the tabs with the data and summary tablesdata-table.js
for main development on the base data table.summary-tabl.sj
for summary tables based on states.
state-view.js
for the component that lists the currently-existing states.states/<state-name>.js
has a special object for each state.utils.js
has a liststateFactories
which needs to be updated for each state (though that's kind of sad).- For individual states:
create-region-interaction.js
for Region State creation (which is embedded inviz-view.js
).compound-state-pane.js
is a component for creating Combination Statescondition-state-pane.js
is a component for creating Condition Statessequence-state-pane.js
is a component for creating Sequence Statestimespan-state-panel.js
is a component for creatign Timespan states.