A Parental Control System to be developed under Visual Studio 2008 with C++ (Win32 API). Not DOT NET.
The implementation of the system consists of following main modules.
1. Hot words (a list of words of phrases that might indicate risk or threat)
2. Screen shots?
3. Key logger
4. Ability to block emails, IP addresses, user names
5. Monitor chats (both ends) textually (not only by screen shots).
6. Hidden Mode option.
Should be done as JPG files, with a quality (1-10) which can be user defined, and with a water mark on top of the image which will contain: project name, monitored computer name, date, time, sequential number of the screenshot, and additional information.
A CCTV like mechanism will be available as well, and the screen images will be captured to a MPG video.
Web Based Control Panel
There will be a web based secured control panel, allowing users to see the information collected, remotely.
Loging in and getting information gathered
There should be a possibility to use the control panel locally (from the client) or on line (from accessing the server via the internet). These control panel applications should be accessed by logging-in and entering the account.
Another option should be using a thumb drive for:
a. installing the software
b. gathering quick information from the target PC (for PC where the software wasn't installed yet).
c. getting the report (same as logging in to the control panel) from a monitored PC, by inserting the thumb drive for several seconds. So the parent can insert the thumb drive to the child's PC for several seconds, and later on, insert it to his own PC (or any PC) to see the information collected by the software.
The software UI should allow defining queries for files to be monitored or sent to the server. For example: *.doc -d10 will monitor WORD files from the last 10 days. This query should be applied to all drives including portable disks which are inserted and used, even when the child is not connected to the internet. Any file that meet the criteria should be monitored or collected and during the next opportunity, sent to the server / copied to the thumb drive, etc.
Hot Words Mechanism
The hot words mechanism should be multilingual (support various languages), and allow definitions of the hot words in a SQL like syntax.
For example: "meeting*" will include the word "meeting place" but "meeting" will only refer to a single word, etc.
There should be an integrated database to store the hot words, and the database should be synchronized with a server online. It should be completely encrypted.
It should include predefined words, and the ability to manually add new keywords.
This mechanism should be combined with monitoring the current active application, so it should also defined where to have a certain hot word triggered an action. For example, a certain hot word should trigger an alert only if it isn't typed to a Word document, but is typed in an email.
A hot word should trigger an alert:
1. Screen shot
2. Grab active document and send it to the server
3. Send a report by email or by SMS