Abstract
This report describes the design and implementation of the Windows Activity Monitoring System application to track user activity on Windows-based Operating System. The application addresses issues like personnel management and employee performance monitoring. Organizations can efficiently monitor employee working hours, detect inefficient use of work time, and discover problems, leading to increased employee’s productivity, and an improved work environment. Additionally, individuals can use this tool for self-analysis helping them in better time management and workflow optimizations.
While similar tools are available in the current market, the current system links the keystrokes and mouse movements with each active user application, providing a more granular level tracking of user engagement. This can also be a game-changer for IT analytics and academic research, where understanding user behavior is key.
To achieve efficient and uninterrupted monitoring the application is designed as a no-console application, placed inside the Windows Startup Folder which launches it automatically on the Windows boot. It mainly utilizes Windows API function accessed through Python’s ctypes and pywin32 libraries to track user activity related data.
Tracked user data is stored in the MySQL database hosted on AWS RDS service. To avoid unauthorized access to the AWS RDS database, an authentication mechanism is established which validates that each request are coming from the authorized users. This is achieved by deploying a REST API system designed using Python’s Flask framework on AWS EC2 server.
In addition, Grafana Cloud, an Observability platform, constitutes one of the core parts of this project by allowing us to transform our data into real-time insights. Grafana ships with built-in support for MySQL data source plugin that allows us to write complex SQL query and visualize data.