Summary.
A background running client application should continually monitor the usage of phone and send logs and alerts, as detailed in later sections, to a remote server via HTTP(using json).
The client application can receive commands from the remote server to change certain parameters applicable to its future behaviour, e.g, change its period of monitoring and sending logs, or change the password used for unlocking the phone.
SMS monitoring
The app should monitor each SMS sent/received by the phone and raise an alert based on certain criteria.
SMS logging
the app should send a daily summary of how many SMS sent/received, possibly breakdown by the hour of the day.
if enabled, it should log all of the SMS ( timestmap, sender/receiver, content) to the server on pre-scheduled base.
Web browsing history logging
client should log all the web links browsed by the user and send to server based on scheduled period. it can be disabled by setting the reporting period as 0.
Speed monitoring
if speed of the phone exceeds a given limit, the phone should be locked and can’t be used for SMS and making calls.
Location logging and alerts
client should log location ( longitude and latitude ) of the phone every 15 minutes and send to server per scheduled. it can be disabled by setting the reporting period as 0.
call logging and alerts
client should log all calls of the phone, including inbound ( missed or taken) and outbound calls. each call record should including phone number, call type( missed/taken/dialed), and call duration if applicable.