wyatt / edulink-sync

NodeJS syncing tool for EduLink & Google Calendar

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

edulink-sync

A NodeJS based syncing tool for EduLink One and Google Calendar.

Inspiration

I decided to make this program as I wanted to view all of my classes more cohesively by using Google Calendar to sync across many devices, operating systems and apps. This project will likely expand in the future with support for homework syncing once summer break is over.

Tools used

  • ⌨ Typescript: Includes detailed and complex type definitions for EduLink responses
  • 💾 Redis: Caches data to avoid constant fetching and increase efficiency.

Usage

  1. Install and run redis in a docker container. Explaining how to do that is outside the scope of this project but the general command is docker run -p 56379:6379 -d redis
  2. Configure your env variables - See below
  3. Run yarn to install dependencies
  4. Obtain OAuth credentials from Google, download the JSON file and copy it to src/util/google/credentials.json

    Note: Ensure the credentials are for the application type: "Desktop"

  5. Run yarn build && yarn start to build and run the program
  6. Authenticate the app following the terminal prompts (You will only have to do this once)
  7. Sit back, relax and watch the progress bar

Env variables

SCHOOL_SUBDOMAIN

The string that precedes .edulinkone.com in the domain

CALENDAR_ID

ID of the calendar to sync. Obtained here. I recommend using an empty, new calendar to avoid event conflicts

EDULINK_USERNAME

Your EduLink username

EDULINK_PASSWORD

Your EduLink password

REDIS_URL (optional)

The url of your redis container. Usually something like this redis://127.0.0.1:56379

Contributing & Issues

I've only tested this on my schools' implementation of EduLink, so it may not work correctly on yours. If it doesn't open an issue, or if you have found a solution, open a pull request. I hope that this small program will help you in your organisational and productivity needs and I hope we can build a fully fledged suite of tools for syncing to and from EduLink

Disclaimer

Obligatory "I am not responsible for any damage caused by using this program. I am not responsible if you miss your classes, mess up your calendar or cause thermonuclear war by using this software."

About

NodeJS syncing tool for EduLink & Google Calendar


Languages

Language:TypeScript 100.0%