Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Endpoint for dates where classes are not held #158

Closed
zachomedia opened this issue Feb 17, 2015 · 6 comments
Closed

Endpoint for dates where classes are not held #158

zachomedia opened this issue Feb 17, 2015 · 6 comments
Assignees

Comments

@zachomedia
Copy link

Hello OpenData,

A handy endpoint (especially for people making calendar apps (ex. Portal)) could benefit from an endpoint which indicated which days classes are not held (when they normal are—like Reading Week).

This information is related to holidays, and a couple of ideas could work for implementing this (I'll leave it to the experts):

  1. Modify the holidays endpoint to include all days where classes are not held and add an extra field indicating if it is a holiday or not (this is probably preferred)
  2. Add a new endpoint with days where classes are not held (probably least preferred because you'd have to mix information from two sources or have duplicate information)

This is an extension on the request for start/end dates of terms (#139).

@KartikTalwar
Copy link
Contributor

Hey @zachomedia are there/can you think cases other than exam time (days after last day of classes) and reading week where there are no classes? I believe that the important dates endpoint is still under development (about to be released soon) and it'll indicate the start and end dates for a term but the technicality for the first suggestion solution is that a holiday implies day off for students and staff whereas reading week and exam time are only applicable to students.

cc @nathanv

@zachomedia
Copy link
Author

Hey @KartikTalwar,

There are a couple of cases that I think more detailed schedule information could be useful:

  1. No Classes (ex. holidays, reading week, etc.)
  2. Modified schedule days (ex: On Monday, April 6 we will be following Friday schedule to makeup for the lost Friday on Good Friday (Important Dates))

Right now there is no way to get this information from OpenData (except for University Holidays). I don't know what the Important Dates response will return, but a need for structured schedule information is needed.

For example, something like this would be very useful:

[{
   "date":"2015-02-20",
   "classes_held":false,
},
{
   "date":"2015-04-06",
   "classes_held":true,
   "schedule":"F"
}]

I forgot when I first submitted this about modified schedule days, so my first implementation idea probably won't work anymore.

@nathanv nathanv self-assigned this Feb 27, 2015
@nathanv
Copy link
Contributor

nathanv commented Feb 27, 2015

@zachomedia @KartikTalwar
I'm going to chime in here. I'm about to embark on a project in an upcoming sprint in which I will build a Drupal form system that will be directly controllable by the same person that updates the current unstructured Drupal page seen here. This system will spit out JSON which we will then Proxy through the Open Data API.

We do have an alpha Important Dates API but we won't be releasing it to the public because it's not being updated by the primary custodian. The new interface will be.

I really like Zachary's idea of appending "classes_held": true or classes_held" : false to an Important Date so I'll be sure to implement that.

That being said, in the situation where we have to record unscheduled days off (snow days, etc) on main campus, we will have to implement a specific tool for that. The primary custodian for that sort of data are the folks that maintain the home page. It will make sense to create a content type where folks can add a "School Closed" piece of content and then we serve it up via Open Data. If it makes sense, we can mash-up the endpoint into Important Dates. Alternatively, we could create another end-point. I'm in favor of the latter especially since we'll want to Geo-fence the alert.

Here's the output we have so far that comes at an API endpoint that lists all important dates for a term:

{
   "unique_key":"important-dates-242",
   "machine_name":"important-dates",
   "friendly_name":"Important Dates",
   "vid":"340",
   "updated":1412365730,
   "title":"Upper-year students: Drop/add period begins",
   "body":null,
   "body_raw":null,
   "audience":[
      "Upper-year"
   ],
   "term":"Winter 2015",
   "term_id":"1151",
   "times":[
      {
         "start":"2014-11-24T00:00:00-05:00",
         "end":"2014-11-24T00:00:00-05:00"
      }
   ],
   "tbd":false,
   "link":"https://wms-feeds.uwaterloo.ca/important-dates/important-date/upper-year-students-dropadd-period-begins-0"
}

With Zachary's suggestion it will become

{
   "unique_key":"important-dates-242",
   "machine_name":"important-dates",
   "friendly_name":"Important Dates",
   "vid":"340",
   "updated":1412365730,
   "title":"Upper-year students: Drop/add period begins",
   "body":null,
   "body_raw":null,
   "audience":[
      "Upper-year"
   ],
   "term":"Winter 2015",
   "term_id":"1151",
   "times":[
      {
         "start":"2014-11-24T00:00:00-05:00",
         "end":"2014-11-24T00:00:00-05:00"
      }
   ],
   "tbd":false,
   "classes_held":true,
   "link":"https://wms-feeds.uwaterloo.ca/important-dates/important-date/upper-year-students-dropadd-period-begins-0"
}

@nathanv
Copy link
Contributor

nathanv commented Feb 27, 2015

I still haven't addressed @zachomedia comment :

Modified schedule days (ex: On Monday, April 6 we will be following Friday schedule to makeup for the lost Friday on Good Friday

For this method, we can append the property "rescheduled":true or "rescheduled":false along with

"rescheduled_times": 
     {
         "start":"2014-11-24T00:00:00-05:00",
         "end":"2014-11-24T00:00:00-05:00"
     }

If there is a date that does not get rescheduled, we will set "rescheduled_times":null

@nathanv nathanv closed this as completed Feb 27, 2015
@nathanv nathanv reopened this Feb 27, 2015
@james05
Copy link

james05 commented Jun 6, 2016

Hey Nathan,

Any update on if an important dates endpoint is going to be published soon?

@nathanv
Copy link
Contributor

nathanv commented Jun 27, 2016

@james05 It's in the short term time-line. We're hopping to launch in early-mid July.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants