Inspiration

We thought of this idea because we did not like having to manually input our assignments into Google Calendar, which is our main calendar/planner. As students our time is limited and having to deal with multiple calendars just makes our live more difficult, something that adds events all to 1 place is extremely helpful

What it does

This program is designed to input the user's assignments listed on AvenueToLearn directly into their Google Calendar automatically. The program will log in for the user (although they will have to 2-factor authenticate) and then upload to their calendar in less than a minute.

How we built it

Since our assignments are on Avenue to Learn, we used web scraping techniques with selenium to extract our assignments and their information from Avenue, and use the Google Calendar API to automatically input it onto the calendar.

Challenges we ran into

We had trouble at first figuring out which libraries we had to use and eventually decided to rely on Selenium for web scraping, and Google API. We also had issues implementing Selenium due to shadow roots in the HTML, which would prevent us from extracting text which we needed for the calendar. We also had some trouble only authenticating users one time, as it would prompt users every time.

Accomplishments that we're proud of

We are proud of how we worked together and despite having limited experience using Git and Github with multiple users we were able to smoothly collaborate using branches and merges. We were also proud of how we were able to use several high level API's and have them interact and share data using our program in order to achieve the desired result.

What we learned

We've learned a lot from this project, some of the technical skills we've gained include; using selenium to interact and scrape information from websites, using google cloud and OAuth2.0 as well as google calendar's API to automatically upload events. We've also learned a lot about python projects as well as good workflows for project and important things to do when starting a project (.gitignore, venv, etc)

Share this project:

Updates