Code Monkey home page Code Monkey logo

edulink-sync's Introduction

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."

edulink-sync's People

Contributors

wyatt avatar gerald12344 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.