Overview
The Digital Wellbeing Tracker is a desktop-native productivity application built to give users genuine insight into their digital habits. Unlike browser extensions or passive loggers, this tool runs at the system level - monitoring active application windows in real-time, tracking session durations, and categorizing usage patterns automatically.
At its core, the project integrates a K-Means clustering algorithm using scikit-learn to group behavioral profiles dynamically. Each user's activity data is processed into feature vectors (session lengths, app categories, time-of-day distributions) which are then clustered to detect addictive or unhealthy usage patterns without relying on hardcoded rules.
The feedback engine generates personalized, data-driven suggestions - nudging users toward mindful technology usage by surfacing insights like "You've spent 3x more time on social apps vs. productive tools this week." The UI is built with Tkinter and Matplotlib, rendering live usage graphs and historical trend charts directly within the application.
Highlights
- →Real-time system-level activity monitoring across all applications
- →K-Means clustering for dynamic behavioral profiling without hardcoded rules
- →Live usage graphs and historical trend charts rendered with Matplotlib
Challenges
- →Capturing active window data reliably across different OS environments required platform-specific APIs and careful polling strategies.
- →Designing the K-Means pipeline to work with heterogeneous usage data - normalizing session lengths, app categories, and time distributions into meaningful feature vectors.
- →Balancing real-time monitoring performance with minimal CPU/memory overhead to avoid impacting the user's workflow.
Key Learnings
- →Gained hands-on experience with unsupervised machine learning applied to real user data rather than toy datasets.
- →Learned how to build responsive desktop UIs with Tkinter that update in real-time without blocking the main thread.
- →Understood the importance of data normalization and feature engineering when clustering behavioral profiles.