In Progress

User action logger for Linux, Windows and Mac

Name: ActivityLogger

Type: native, multi platform library/worker

We need a new library that is well written (clean, maintainable code) and preserves the functionality of the old app to track user activities on a computer. Later on we would like to include the library in the Electon app.

Supported OS:

- Windows XP or higher

- Linux (Debian, Ubuntu)

- MacOS 10.4 or higher

Supported browsers (read on):

- Chrome

- Firefox

- Safari

- Internet Explorer

- Edge

Features:

- runs in background

- collects a combination of process name and windows title and (*)optional URL field

(*) optional URL field is filled only when process is a browser. URL is collected from the browser on every change of the browser tab and counts as a new action.

- collects information on when the user was last active by counting when was the last key pressed or mouse clicked. Continuous press counts as being active. The latch interval is configurable. Example: Latch interval is configured to 1 minute. A user typed ‘a’ key and went away from the computer at 10h00m00s. We count The time from 10h00m00s to 10h01m00s as the user being active. Every time user presses a key or moves a mouse or clicks a mouse the latch resets.

- stores all the data in persistent location belonging to currently logged in system user

- sends stored data to server every 5 minutes (remote configurable batch size and period)

Proposed project structure:

- collector, responsible for gathering data from processes

- worker, main process, responsible for running the `collector` in background, reconfigurable

- database, responsible for persistently storing the data from `collector`

- dispatcher, responsible for periodical dispatch of stored data to a remote server, handles connection errors, has retry strategy

Proposed languages:

- C

- Objective-C

- C++

Proposed data structure:

- outbound action message:

{

type: ‘window-switch’,

dateTime: <time in epoch with miliseconds after ., ie. 1493043764.432>,

windowTitle: ‘Google Chrome’,

processName: ‘[url removed, login to view]’,

browser: {

url: ‘[url removed, login to view]‘

},

}

- outbound activity message:

{

type: ‘activity’,

startDateTime: <epoch>,

endDateTime: <epoch>,

}

- inbound config:

{

type: ‘configure’,

...

}

Proposed libraries:

- SQLite for data storage (data is not encrypted and is located in user-related directory)

Notes:

- the library worker should be reconfigurable at runtime so new settings coming from remote can be applied immediately when server says so

- the lib does not have to query NTP. It should trust the system clock

- all collected times should be in UTC

- the library should consume minimal CPU power

- the library should use JSON to communicate

- the library should take care of computer going to sleep or hibernation. Latch is ignored in this case.

Skills: C Programming, C++ Programming, Object Oriented Programming (OOP), Objective C, RESTful

See more: how to make a keylogger, python keylogger mac, pyhook for mac, selfspy, simple keylogger python, rescuetime, business name window cleaning, linux windows mac, android change activity package name eclipse, desktop activity, exe name window handle, personal activity logger, file name window handle, activity logger, media catalog linux windows mac

About the Employer:
( 6 reviews ) Wrocław, Poland

Project ID: #15118541

Awarded to:

sgatich

Hi. I'm a programmer from Russia with strong skills in C++. You can see the full list of my skills on my profile page. I performed a similar job for Windows and Linux. It concerned keyboard hook and mapping of let More

$27 USD / hour
(6 Reviews)
4.5

8 freelancers are bidding on average $38/hour for this job

xiqian88

Hello,Sir please visit our team site:[url removed, login to view] High-Quality+fast development+good credit+fast communication=My work method! My first aim is to provide you quality and professional task. i have dev More

$41 USD / hour
(21 Reviews)
6.1
Wangxianming

** Please consider this is not an auto bid ** Hi. I checked your project with great care. I have rich experience on such utility apps, Please check my wonderful review and contact me. Thanks

$41 USD / hour
(9 Reviews)
6.2
TenStar718

Dear sir. I have full experience in Windows,Linux,MAc programming I can develop action logger for you. If you hire me, I will do my best to work on your project to make the excellent result for you and your customers More

$39 USD / hour
(12 Reviews)
6.1
isparrowsolution

Hello hiring manager I read your details and I understand is that you wish to develop ActivityLogger for new library that is well written (clean, maintainable code) and preserves the functionality of the old app to More

$25 USD / hour
(6 Reviews)
4.3
hawkscodeaus

Hi, I can start work on your project immediately once you confirm me and i am also open for further discussion if you want. I have 7+ years in web designing & development with good experience in following skills More

$40 USD / hour
(1 Review)
3.4
leolecherbonnier

Hello, I am currently studying in the best IT school in France. This school teaches c and c ++. Hence my offer today. I had the opportunity to develop my own librairy : more than 5000 lines of code (in C) I al More

$33 USD / hour
(2 Reviews)
1.8
gopinathansubu

We are a team of engineers having expertise on embedded domain. We have worked on several embedded linux/android SBC like AM335x-sk, Wandboard, Dragon Board, Pi2&Pi3, Beagle Bone Black, C.H.I.P etc as well as Microcont More

$55 USD / hour
(0 Reviews)
0.0