- 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
sftpcommand to transfer the build files to the server!- Run
sftp danielmanesh@128.173.236.236(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
buildon the server with the localbuilddirectory. If you're not sure you want to clobber the oldbuilddirectory, you cansshin 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.jsThis contains the root component of the app. Good for getting a high-level view of how all the components are assembled.app-state.jsThis file is for managing the "app-state", i.e., a blob of state that is initialized inindex.jsand 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.jsfor development on the main data visualization.viz-data-editor.jsfor development on the edit data section of the visualization.upload-layout.jsfor development on uploading a site layout to display on the visualization.
data-view.jsfor the component that houses the tabs with the data and summary tablesdata-table.jsfor main development on the base data table.summary-tabl.sjfor summary tables based on states.
state-view.jsfor the component that lists the currently-existing states.states/<state-name>.jshas a special object for each state.utils.jshas a liststateFactorieswhich needs to be updated for each state (though that's kind of sad).- For individual states:
create-region-interaction.jsfor Region State creation (which is embedded inviz-view.js).compound-state-pane.jsis a component for creating Combination Statescondition-state-pane.jsis a component for creating Condition Statessequence-state-pane.jsis a component for creating Sequence Statestimespan-state-panel.jsis a component for creatign Timespan states.