Add NDN Play integration to Mini-NDN code base

Integrate the minindn_play project by Varun Patil into
the base Mini-NDN codebase; this will allow for the
use of the NDN-Play browser UI with minimal additional
dependencies or setup.

Refs #5359

Change-Id: I4fedfa885b07d7fe946a18c6d9b5016d291b3582
diff --git a/docs/experiment.rst b/docs/experiment.rst
index aa2692d..b5be695 100644
--- a/docs/experiment.rst
+++ b/docs/experiment.rst
@@ -212,6 +212,65 @@
 
     export HOME=/tmp/minindn/a && cd ~
 
+GUI Interface
+--------------
+Mini-NDN provides an optional browser-based GUI interface via `NDN-Play <https://github.com/pulsejet/ndn-play>`__.
+
+An example can be found at ``examples/ndn_play_demo.py``. To start the server, add the following to your Mininet script.
+This will print the URL of the server.
+
+.. code-block:: python
+
+    from minindn.minindn_play.server import PlayServer
+
+    if __name__ == '__main__':
+        # placeholder
+        PlayServer(net).start() # starts the server and blocks
+
+If running remotely, you must make sure to forward the port 8765 to the local
+machine where the browser is running (this port is used by the websocket server). Remember that Mini-NDN runs with superuser
+privileges, so do this judiciously.
+
+Wireshark Visualization
+_______________________
+
+MiniNDN stores the ``hosts.params['params']['homeDir']`` variable for all hosts, used to identify the home directory of the
+nodes. The wireshark dump must be stored in ``shark.log`` in the ``<node-home>/log`` directory for each node. Using the app
+manager, this can be done as,
+
+.. code-block:: python
+
+    from minindn.apps.app_manager import AppManager
+    from minindn.apps.tshark import Tshark
+
+    if __name__ == '__main__':
+        # placeholder
+        ndn.initParams(ndn.net.hosts)
+        sharks = AppManager(ndn, ndn.net.hosts, Tshark, singleLogFile=True)
+
+Once setup, the dump will be visible for each node and the TLV inspector will show each packet on double-clicking it in the GUI.
+If this fails to function, we recommending following the troubleshooting steps for the `NDN Wireshark Dissector
+<https://github.com/named-data/ndn-tools/blob/master/tools/dissect-wireshark/README.md>`__ before filing an issue.
+
+Log Monitor
+___________
+
+The log monitor periodically captures the output of one or more log files on each node and shows the events on the topology
+visually by changing the color of the node. In the following example, the `log/my_app.log` at each host will be monitored
+every `200ms`, for all lines (matching the regex `.*`).
+
+.. code-block:: python
+
+    from minindn.minindn_play.monitor import LogMonitor
+
+    if __name__ == '__main__':
+        ...
+
+        server = PlayServer(net)
+        server.add_monitor(LogMonitor(net.hosts, "log/my_app.log", interval=0.2, regex_filter=".*"))
+        server.start()
+
+
 Working Directory Structure
 ---------------------------