Skip to content

Latest commit

 

History

History
57 lines (47 loc) · 2.72 KB

README.md

File metadata and controls

57 lines (47 loc) · 2.72 KB

UniSync 🗓️

UniSync is an automation tool that seamlessly syncs your SNU course schedule with Google Calendar.

Features

  • Automated Schedule Extraction: Securely authenticates and scrapes weekly schedule from SNU's ERP
  • Google Calendar Integration: Creates and updates events using the Google Calendar API
  • Seamless Integration: Keep your schedule organized with just a few clicks

Security

Sensitive information like NetId and Password as well your Google Credentials are only stored in .env files and are only accessed to authenticate with SNU's ERP and Google OAuth respectively.

Other sensitive information used to persist sessions and calendars are stored under the secrets/ directory. This directory is only ever accessed to authenticate with the Google API's.

Example

On Google Calendar

Google Caledar Example

In Terminal

$ python src/main.py

DevTools listening on ...
[Scraping ERP Data] |█████████████████████████| 100.00%
[Formatting Schedule] |█████████████████████████| 100.00%
[Clearing Existing Events] |█████████████████████████| 100.00%
[Creating Monday Events] |█████████████████████████| 100.00%
[Creating Tuesday Events] |█████████████████████████| 100.00%
[Creating Wednesday Events] |█████████████████████████| 100.00%
[Creating Thursday Events] |█████████████████████████| 100.00%
[Creating Friday Events] |█████████████████████████| 100.00%
Successful

Setup

  1. Clone this respository and navigate into it.
git clone https:://github.com/lalitm1004/UniSync.git
cd UniSync
  1. Go onto Google Cloud Console and create a Project (name whatever)
  2. Configure your OAuth Consent scren (email me for help)
    • Add ./auth/calendar to your scopes
  3. Goto credentials and make an OAuth Client ID
    • Select Web Application (name whatever)
    • Under Authorized redirect URIs add http://localhost/
    • Save the credential and copy your Google ClientID and ClientSecret
  4. Create a .env file and populate it like shown in .env.exampple
  5. Run pip install -r requirements.txt (setup an venv if required).
  6. Run python src/main.py

Usage

Just run this script at the start of each week to synchronize your schedule. Enjoy!

To do

  • Add color options for entries (course code wise, component wise)
  • Add title options for entries (course code wise)