ethanpartida / MMM-MyStudyLife

Module to display info from the website MyStudyLife
MIT License
10 stars 1 forks source link

MMM-MyStudyLife

This is a module for MagicMirror. It displays info from the website MyStudyLife. It syncs and displays your class schedule plus upcoming exams and tasks. Each individual class, exam, and task is colorcoded to the colors used in MyStudyLife. Screenshot of Module

Installation

  1. Navigate into your MagicMirror's modules folder and execute git clone https://github.com/ethanpartida/MMM-MyStudyLife.git. A new folder will appear, navigate into it.
  2. Execute npm install to install the node dependencies.
  3. Open a browser and navigate to the dashboard of your MyStudyLife account. Then open a developer console and input the command localStorage._. You should get a response along the lines of "XXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXX=". Paste this code in your config file as follows:
    code: "XXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXX=".
    (Unfortunately My Study Life changes this code roughly once a month and this code will have to be manually updated by the user)

    Example of Dashboard and Console

  4. Unfortunately there is no way to find which days of the week each class takes place using the data MyStudyLife exports so you must enter this info into the config file. You will create a javascript object which has the name of your classes as keys and an array of the dates the class occurs on as values. The arrays will contain integers which represent the dates. They are as follows:

    Sunday Monday Tuesday Wednesday Thursday Friday Saturday
    0 1 2 3 4 5 6

Config

The MMM-MyStudyLife entry in config.js can include the following:

Option Description
interval How often the data is updated (in milli-seconds),
Type Integer
Default 100000
code The code received from MyStudyLife in step 3
Type String
Required
color Whether or not to color the module
Type Boolean
Default true
showSchedule Whether or not to display a class schedule
Type Boolean
Default true
showExams Whether or not to display upcoming exams
Type Boolean
Default true
showTasks Whether or not to display upcoming tasks
Type Boolean
Default true
totNumOfTasks The maximum amount of tasks displayed under the "Tasks" tab
Type Integer
Default 5
totNumOfExams The maximum amount of exams displayed under the "Exams" tab
Type Integer
Default 7
includeExamSub Whether or not to include the subject of the exam before the title of the exam ("Physics Final" vs "Final")
Type Boolean
Default true
classes A javascript object containing all of your classes and what days of the week they take place on
Type Object
Required
militaryTime Whether or not to use 24 hour time in class schedule
Type Boolean
Default true

Here is an example of what config.js might look like:

modules: [
  {
  module: "MMM-MyStudyLife",
  position: "top_right",
  config: {
    code: "XXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXX=",
    showSchedule: true,
    showExams: true,
    showTasks: true,
    classes: {
      "Intro to Algs. Lecture": [1,3,5],
      "Intro to Algs. Lab": [3],
      "Honors Math Lecture": [1,3,5],
      "Honors Math Discussion": [2,4],
      "Physics": [1],
      "General Review": [1],
      "Math": [1,3,5],
      "Physics 2 Lecture": [1,2,3,5],
      "Physics 2 Discussion": [4],
      "Physics 2 Lab": [4],
      "Digital Games and Society": [2,4],
      "CSE 1001": [5],
      "Honors Nexus": [4]
    }
  }
  },
]           

Dependencies