diff --git a/react-app/.gitignore b/react-app/.gitignore
new file mode 100644
index 0000000..d30f40e
--- /dev/null
+++ b/react-app/.gitignore
@@ -0,0 +1,21 @@
+# See https://help.github.com/ignore-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+
+# testing
+/coverage
+
+# production
+/build
+
+# misc
+.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
diff --git a/react-app/README.first b/react-app/README.first
new file mode 100644
index 0000000..7f7aaac
--- /dev/null
+++ b/react-app/README.first
@@ -0,0 +1,43 @@
+
+This directory contains an example of an React application that can interact
+with your server.
+
+To use it, you have to add a small feature to your server called HTML5 fallback,
+which is the ability to serve /index.html if it cannot find a file at the path
+specified.
+See https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#deployment
+for more details.
+
+For our server, you have to implement this by making the appropriate
+changes to how you serve static assets.
+An update to the base code sets up the -a switch to activate this behavior:
+https://git.cs.vt.edu/cs3214-staff/pserv/commit/65ee63d43ef92553cd3650b3e276d71e2f7daec5
+(Note that the patch doesn't contain the necessary fixes to handle_static_assets
+which will be part of future versions of this project.)
+
+The necessary improvement can be made by substituting /index.html as the fname
+when the call to access() fails instead of returning 404. However, for paths
+denoting / or existing directories, you must also serve /index.html, which requires
+a second check to see whether there is an existing directory (and serve /index.html
+if so).
+
+Once you've made this addition, you can test the app as follows:
+
+(1) ssh into rlogin with
+
+$ ssh -L 10000:localhost:yourport you@rlogin.cs.vt.edu
+
+(2) Add node to your PATH:
+
+$ export PATH=/home/courses/cs3214/software/node-v8.11.1-linux-x64/bin:$PATH
+
+(3) Inside react-app, run
+
+$ npm run build
+
+(4) and then run your server with
+
+$ ./server -p yourport -a -R ../react-app/build
+
+(5) You should now be able to go to the app in http://localhost:10000/
+
diff --git a/react-app/README.md b/react-app/README.md
new file mode 100644
index 0000000..479d632
--- /dev/null
+++ b/react-app/README.md
@@ -0,0 +1,2444 @@
+This project was bootstrapped with [Create React App](https://github.com/facebookincubator/create-react-app).
+
+Below you will find some information on how to perform common tasks.
+You can find the most recent version of this guide [here](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md).
+
+## Table of Contents
+
+- [Updating to New Releases](#updating-to-new-releases)
+- [Sending Feedback](#sending-feedback)
+- [Folder Structure](#folder-structure)
+- [Available Scripts](#available-scripts)
+ - [npm start](#npm-start)
+ - [npm test](#npm-test)
+ - [npm run build](#npm-run-build)
+ - [npm run eject](#npm-run-eject)
+- [Supported Browsers](#supported-browsers)
+- [Supported Language Features and Polyfills](#supported-language-features-and-polyfills)
+- [Syntax Highlighting in the Editor](#syntax-highlighting-in-the-editor)
+- [Displaying Lint Output in the Editor](#displaying-lint-output-in-the-editor)
+- [Debugging in the Editor](#debugging-in-the-editor)
+- [Formatting Code Automatically](#formatting-code-automatically)
+- [Changing the Page `