Automate your Repetitive Computer Tasks with ‘Clickery’: A Beginner’s Journey in Python Automation
I’ve been thinking of writing a Medium article for a while now, but I haven’t been able to decide on a topic 🤔. So, I figured I’d start by sharing the backstory of my project Clickery. 💡
🎬 The story goes like this,
I got invited to a community while in first-year, Gtech μlearn— by my college senior, Vinu Balagopal — I am really grateful to him for giving me that opportunity, to be honest by the way.
The thing is, as a newbie with limited programming skills, I was placed in the data handling department and my job was to collect data from various sources and update it in multiple places. Sounds boring? Maybe! 😐 So, I tried to automating it a bit with Python code, but it was truly a pain for me as a beginner to write different codes for each task so much so that most of the time it was quicker to just do it manually. 😒
Around the same time, I was taking the CS50’s Introduction to Computer Science course — great course by the way would definitely recommend it! and by this time around I had reached it’s final week. The thing is, CS50x wants me to complete a final project and submit it for the certificate, and my internship was focused around doing repetitive tasks. So, I had this idea: why not create a project that would do these tasks for me? As in, what if I could kill two birds with one stone? 🤔 like, What if I created an app that could automate repetitive computer tasks, like clicking buttons, filling out forms, selecting texts, copy-pasting, and so on? 💡
🚀 Genesis
That’s when I found about a great python module called ⭐pyautogui, which helps in automation.
My first pyautogui code:
import pyautogui
pyautogui.move(400, 0)
pyautogui.click()
So, I decided to give it a shot and started exploring. Let me tell you, it was no walk in the park for a beginner. Honestly, I wasn’t even sure if I could even lift that metaphorical stone, let alone hit both of those metaphorical birds!
The Learning Curve 📚 :
The lack of ChatGPT back then meant that I had to read The Documentation of the libraries I used, get down-voted on Stack Overflow, engage with online communities, familiarize myself with python GUI, watch YouTube tutorials, scroll through years old conversations between strangers regarding the same exact issue I have and a lot more!
The User Interface design 🎨 :
Being not too great on UI design I had to try out a lot of different things to eventually reach a template, since this was a terminal based app, there wasn’t really much template online to refer and get inspired, but after a lot of digging I found a great module called ⭐Rich which helped in designing the terminal and an interesting module named ⭐Tkinter, Tkinter was the only good choice I could find online on creating GUI, but unlike Rich, using Tkinter was a pain, It felt too unnecessarily cryptic. In fact, I probably spend more time making sense of Tkinter documentation than every other module. 😅
Writing Documentation 📝 :
Since, this was also a project that I should submit, I had to write a really detailed documentation, but with almost no experience writing one, I had to spend quite some time researching and then a lot on just plainly writing the documentation.
but, with all that, Fast forward 3–4 months 🕰️,
🎉 Introducing CLICKERY!
Clickery automates your repetitive computer tasks! With custom scripts, it can click buttons, fill in forms, and navigate web pages. Save time and effort by letting Clickery handle these tasks for you!
Made with ❤️ by Muhammed Zafar
And that’s not all! I am still in the process of writing a webpage for the program, and to be honest, I have no idea when I’ll finally be done with the project. 😅
🌱 Conclusion
Anyways, thanks for reading! But trust me, this is just the tip of the iceberg. Clickery was/is a complex project for me as a beginner that required a lot of research, learning, and trial and error.
And even though I’ve made progress, there’s still so much more to do. 🛣️ I’ll be sharing more about Clickery and its use-cases in future blog posts, so stay tuned if interested! 🤞