Inspiration
Procrastination has always and will always be a problem. The main solution I found useful in high school was having someone look over every couple of minutes, so following up on that idea, I thought about how I could simulate that effect of someone's judging gaze.
What it does
Pushy tracks your active windows, inactive windows, and eyes to see if you are paying attention. Through customizable keywords and settings, it determines whether the windows on your screen are related to work. I am currently working towards implementing ChatGPT to make snide remarks on your procrastination choices.
How we built it
Through python, blood, sweat, and tears.
Challenges we ran into
It was difficult to figure out how to set up the eye tracking properly since the library was from github and did not come with much documentation. Pygetwindow does not actually know what windows are visible through any functions, and in a cruel twist the variable in every window object labelled "visible" actually refers to something else entirely. So as a workaround, I used another library, shapely, along with coordinates from every running window to calculate the area of overlap between a bunch of rectangles and avoid double counting overlaps between specific windows. 11Labs API relies on ffmpeg to play audio, and after fiddling with it, I have no idea why it's not working. It is installed and it does work from CLI, but python is unable to find it or call it for some reason, so instead I turned to a google translate tts library, which on the plus side, is free and runs locally. Setting up the interface was difficult, it's like learning HTML again, so it was frustrating when elements don't do what you want them to do. I have had very little experience with Tkinter in the past so this was a good chance to improve.
Accomplishments that we're proud of
The interface is surprisingly coherent and functional, the notifications work well, I've managed to pick up 3 different major libraries in 1 day, and the project is nearing completion. Also I would actually use this since I procrastinate a lot and it's good at calling me out. Overall, there's a lot of room for improvement, but for a start, it's functional and works well.
What we learned
Always trust random solutions for downloading files and software from the internet, it couldn't possibly be malware or anything. Also a lot about windows.
What's next for Pushy
100% implementing ChatGPT. The whole reason I got into this idea was because the idea of a annoying AI constantly nagging me to keep working was both fun and probably practical to some extent. I would like to get 11labs working properly if I can, but it would make installation for users without ffmpeg a nightmare.
Log in or sign up for Devpost to join the conversation.