Extension:CommentStreams/Developer Notes

Below are descriptions of the structure of the CommentStreams extension.

PHP files:
 * CommentStreams_body.php: sets up database, namespaces, tag function
 * CommentManager.php: hook function implementations; entry point to comments
 * storePageInfo is called very early on (MediaWikiPerformAction hook), and saves information about the page as variables (e.g. pageID, pageTitle, etc)
 * addCommentsAndInitializeJS is called on BeforePageDisplay hook, adds all initial comments to page in PHP and initializes the JS that allows for posting/editing/deleting

JS files:
 * spin.min.js (version 2.0.1) used for the spinner
 * CommentStreams.Controller.js: is the main app that handles events like "Reply" clicked or "Start New Discussion" clicked, handles the AJAX calls
 * CommentStreams.Data.js: holds constants needed on the JS side, such as whether user is logged in, and the page ID of the page being commented on
 * CommentStreams.Querier.js: is the JS wrapper for all AJAX calls to APIs (e.g. for posting, editing, deleting)

SQL files:
 * All SQL files are used to create the new database tables for CommentStreams
 * Note that downvotes.sql and upvotes.sql create database tables for upvoting and downvoting features, but work on those features was abandoned

API files should be fairly self-explanatory, each is an API extension to allow for posting/editing/deleting comments, as well as querying for comments or information in the database