At the time of writing this, I am back home after having left university due to the infamous corona virus pandemic. When our university notified us that we'd be having online classes until further notice, most of us were ecstatic. I, for one, shared the sentiment, but only because I wouldn't have to attend my morning classes - although my thoughts and prayers were with the victims of corona.
However, much to my dismay, we then received a follow-up email from uni saying that we'd have online classes sticking with the REGULAR SCHEDULE!!! It wasn't about the classes - like I said, I'm not much of a morning person, and so it was only about the timing of the classes. We had a strict attendance policy at uni, which meant morning classes weren't going anywhere.
The desire to sleep can do marvels, and that's when it struck me - these were online classes - my point is, you only need to login for the duration of the class to be marked as present. And I was sure that if you can fill out your login credentials, and click on a few buttons to attend lectures, so could python.
Well you might be thinking that I'm doing an awful lot of work to not use what I'm paying for, namely education. To which I'd like to point out and reiterate that I just didn't want to attend classes in the morning, and make up by attending my classes at night, at my own pace. This was a unique opportunity to take a brief hiatus from the normal way most of us attend classes, and I simply couldn't let it slip away.
This is when I stumbled upon the Selenium webdriver library, which lets me automate my actions on a web browser. I've used this in unison with both 'Windows Task Scheduler' (on Windows, duh) and 'crontab' (on linux distros) to schedule running IMBOTUS according to my timetable.
The video of the demo is hosted here
Link to Code
And here's the code over at GitHub if you'd like to check it out (perhaps you could use it yourself, if you're not a morning person either ;))
How I Built It
I didn't use any stack for this project (it's just a python script lol) , but I did make a personal coding blog at around the same time in order to show-case this project among others. The blog was built using Django, and it was my first attempt at a making an actual web-dev project (Personally, it was a really useful learning experience. I know have a whole new level of respect of web developers haha). So for those interested in implementation details you could check out my blog post over here at Narcodes.org (Shameless plug :P)