SYSTEM DOCUMENTATION: System documentation is mostly in the form of comments in the individual files, but here are the basics for extending this project: Index.php is the main file in this project. It is run from a web browser and the other php files are called only from it. This system currently only supports one state, Maine, and to extend this one would need to add a state field to the towns relation, as well as update the code to check the state, and find live feeds or website with outage information for the given state. Maine is lacking online outage data from Maine Public Service, but if the change this, it could easily be added to this system by adding a couple of methods and calls to those methods. New reports can be added to the system by adding them to report.php and adding the necessary buttons/fields to index.php in the lower section of the source code (the sidebar div). DATABASE SCHEMA: Towns(_id_, _name_, lat, lng, zip) - Towns and related geographic data. Outages(_id_, downcount, lastoutage) - Statistics on past outages per town. DownNow(_id_, downdate) - Towns that are presently down. PROGRAM EXECUTION ORDER: When index.php is loaded, the PHP executes first, on the server. It scrapes data from the Bangor Hydro and Central Maine Power online outage notification websites, and pulls town names out of the data. Once we have PHP arrays of town names, we call a geocoder function that queries the database for a latitude/longitude based on the town name. If it's found, the town name, lat, and long are all added to an output array. At this point we have PHP arrays of tripples (town, lat, long) that we write to the file as java arrays so that when java runs it has the data we've scraped. From this point the page itself starts to load and Javascript starts executing. It itterates through the arrays of tripples and creates markers for the google map and plots them onto the map. Once the page is fully loaded the user can navigate the map or list of towns with outages, or add/update/remove towns from the database, or view reports about outage history. Any of the buttons on the index.php page post data to another php file, depending on the button, that makes additional queries to the database and outputs the results.