The goal of the project is to create a proof of concept application that sits in the background of a Windows machine and monitors when the user in his browser goes to certain SSL and non-SSL web pages. The web pages to monitor are defined in a config file by a series of regular expressions. Once the user goes to a page that matches one of the regular expressions the application should take the html from the browser and send it to a web service. This should be done seamlessly and without the user noticing the application’s actions.
## Deliverables
Browser Monitoring Application
## Description
The goal of the project is to create a proof of concept application that sits in the background of a Windows machine and monitors when the user in his browser goes to certain SSL and non-SSL web pages. The web pages to monitor are defined in a config file by a series of regular expressions. Once the user goes to a page that matches one of the regular expressions the application should take the html from the browser and send it to a web service. This should be done seamlessly and without the user noticing the application’s actions.
## Functional Stories
| **Name** | **Story** |
| **CONFIG** | As a user I want a config file in plain text or xml that defines all system variables so that they are easily changed. |
| **[login to view URL]** | As a user I want to be able to write multiple (could be several thousand) regular expressions in the config file so that the application knows which HTTP/HTTPS URLs to monitor. |
| **[login to view URL]** | As a user I want the system to have a web service URL in the config file so that the system knows where to send the html. |
| **[login to view URL]** | As a user I want the application to grab the html from the browser when I go to a URL in [login to view URL] in Internet Explorer 7 so that the html page can be sent to the web service. |
| **[login to view URL]** | As a user I want the application to grab the html from the browser when I go to a URL in [login to view URL] in Internet Explorer 6 so that the html page can be sent to the web service. |
| **[login to view URL]** | As a user I want the application to grab the html from the browser when I go to a URL in [login to view URL] in Firefox 2 so that the html page can be sent to the web service. |
| **[login to view URL]** | As a user I want the application to grab the html from the browser when I go to a URL in [login to view URL] in Firefox 3 so that the html page can be sent to the web service. |
| **SEND** | As a user I want the html page grabbed in GRAB.* to be sent to the web service URL in [login to view URL] so that the html can be processed |
| **LOG** | As a user I want the application to log (to a text file) the the URLs and HTML that are grabbed so that the functionality can be monitored. |
##
## Non-functional Requirements
| **Name** | **Description** |
| **[login to view URL]** | Developed in C# or similar to run without requiring runtimes (such as Java VM) or extra downloads/installations for the user. |
| **[login to view URL]** | Documentation required describing each method/function in the software. |
| **[login to view URL]** | Should run on Windows Vista and Windows XP. |
| **[login to view URL]** | Documentation how to compile and build the application. |
##
## Web service format
The html page that is grabbed should be sent as a POST to the URL defined in the config file. In this POST the following parameters should be used.
| **Parameter** | **Value** |
| **url** | The URL of the page that was grabbed (eg [login to view URL]) |
| **html** | The html of the page that was grabbed (eg <html><head>…) |