Skip to main content

Scrape a curtin timetable_tool into google calendar

Project description

timetable_tool

Disclaimer: It's not my fault if you are late for class. If for some reason this program scrapes your timetable incorrectly I accept no responsibility. Use at your own risk!

Timetable image

My Problem:

Description

I have a had a brief look at the timetable display for curtin in eStudent, it is super inconvenient to log in through oasis AND THEN into eStudent AND THEN go to My Classes AND THEN select the appropriate dates to view what you ACTUALLY have on at uni that week.

The solution I would like!

I would like to create a script that will pull all of the my class information from eStudent and then be able to set this up in Google Calendar as a seperate calendar (So that it can be turned on and off, otherwise it will make my calendar super cluttered)

My Solution:

Pre-requisites

  1. Student at Curtin University, this only works for Curtins student portal, although lots of universities use eStudent. It would be relatively simple to adapt this to suit.
  2. Linux - At this stage I have only tested it on Linux and there are some minor OS operations so it will only work on Linux for now
  3. There are a few necessary python packages that can all be installed through pip, they are:
    1. requests
    2. getpass
    3. BeautifulSoup
    4. Google API modules
    sudo pip install --upgrade google-api-python-client
    

How to use it!

  1. Clone my repository
git clone https://github.com/kevinglasson/timetable_tool
  1. Navigate to the application folder
cd timetable_tool
  1. Install the requirements
sudo pip install -r requirements.txt
  1. Navigate to the scripts folder
cd scripts
  1. Run the main.py script and follow the prompts
python main.py

TODO:

Now that I have the basic command line functionality working I will endeavour to implement the following extensions and improvements.

GUI

If I am to make this accessible and useable for everyone it is going to need a GUI, command line operation is too clunky and intimidating for some!

OS Independency

Another thing needed is to account for the small amount of OS operations in the Google credential file creation part of the program, this needs to be able to assess what type of operating system it is running on and issue the correct sys commands.

Turn it into and application!

I am not sure how to tackle this yet but I would like it so that it could be 'installed' and 'ran' with a couple of mouse clicks, no command line navigation or running of python scripts.

Add more features

  1. Maybe integrate with Google maps for the building / room numbers of my classes
  2. Provide the option to set alarms a specified amount of time before a class begins, or just a specific type of class. For example warn me via an alarm 1 hour before any lab session that I need to wear enclosed footwear! (This recently bit me)

More testing

So far this has only been tested with my account, I have no idea of it's effectiveness on other students accounts or with other Google accounts. This is a pretty big flaw.

Clean up the code

Pretty self explanatory, this one is never really finished.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

timetable_tool-0.1.1.5.tar.gz (9.2 kB view details)

Uploaded Source

File details

Details for the file timetable_tool-0.1.1.5.tar.gz.

File metadata

  • Download URL: timetable_tool-0.1.1.5.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.6

File hashes

Hashes for timetable_tool-0.1.1.5.tar.gz
Algorithm Hash digest
SHA256 5c0504ed1c81d329fcff2a5396c449275b540be9a2c6833b6473b4f420d178e2
MD5 c5d4858092a2fe5118921ddf0e6bd0d1
BLAKE2b-256 be2a85ffa280cbf6cea66e9d8add8bfef76ffeb09abadd6864d43155813af275

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page