You have chosen to sponsor your bid up to a maximum amount of .
We need a HTTP logger app for a research study on browsing behaviour of users. The key functionalities required are:
1. The logger app should run a local proxy server inside the phone so that whenever any other application sends or receives an HTTP message, it can be logged. This should work in an un-rooted phone and upon installation, our app should automatically make the required changes to the android proxy settings. An open-source project called Android Adblock already has working code for implementing a HTTP proxy app, although for a different application. This could be a good starting point upon which the additional features described below can be added.
2. For each HTTP message sent or received, the app should log as much information as possible, including: (i) the hostname of the server to which the request was sent/received, (ii) the URL, i.e. the path and file requested from the server, (iii) The content type (e.g. text/html, image/png), (iv) Content of the body, (v) Timestamp of when the message was sent/received, (vi) Name of the app that issued the HTTP request. For reference, the logging functionality should have similar fields as any desktop based HTTP logger such as Fiddler. The logs should be stored in csv format in either the external SD card or the internal storage.
3. In-app viewing/deleting of the HTTP log: There should be a simple viewer through which the user can browse the stored log. The display should have 1 row for each HTTP message logged and 4 columns: (i) Selection button, (ii) App Name through which this HTTP message came, (ii) URL of the HTTP, (iv) Time of log. The user should be able to select/deselect each row manually and through the use of a Delete button on the bottom, should be able to delete the selected log entries. For details, see mockup images in the attached file.
4. Emailing of log: The ultimate aim of the app is to send the logs from the user to the researchers. For this, we want two modes of operation: Automatic & Manual. In the automatic mode, our app should send an email from the user’s phone to a pre-specified email address periodically (e.g. once every 24 hrs) with the logged csv file as an attachment. In the Manual mode, the user can delete selective logs from the in-app viewer described above and once he is done, can press a ‘SEND NOW’ button which will trigger the email to be sent.