Skip to content

Files

Latest commit

 

History

History
145 lines (96 loc) · 3.83 KB

README.md

File metadata and controls

145 lines (96 loc) · 3.83 KB

McMaster Course API

Usage

https://mcmaster-course-api.herokuapp.com

List all Courses

Definitions

GET /courses

Response

  • 200 OK on success
[
    {
        "identifier": "CLASSICS 1A03",
        "name": "CLASSICS 1A03 - Introduction to Classical Archaeology",
        "units": "3 unit(s)",
        "description": "A study of the history and methodology of Greek and Roman archaeology illustrated with materials from excavated sites.",
        "other": "Three lectures; one term"
    },
    {
        "identifier": "CLASSICS 1A03",
        "name": "CLASSICS 1B03 - An Introduction to Ancient Myth and Literature",
        "units": "3 unit(s)",
        "description": "A study of Greek and Roman mythology and literature. Texts such as Homer, Virgil and Greek tragedies will be read in translation.",
        "other": "Two lectures, one tutorial; one term"
    }
 
]

Edit existing course

Definitions

PUT /courses/<identifier>

Arguments

  • "identifier" : string unique identifier for the course
  • "name": string friendly name for the course with course code
  • "units": string how many units is the course, add unit/unit(s) beside number
  • "description": string description of the course if there is any
  • "other": string anything additional to add, course requisites, semesters taught

Response

-- 201 Created on success -- 404 Not Found if the course does not exist

-- Updated course

{
    "identifier": "CLASSICS 1A03",
    "name": "CLASSICS 1A03 - Introduction to Classical Archaeology",
    "units": "3 unit(s)",
    "description": "A study of the history and methodology of Greek and Roman archaeology illustrated with materials from excavated sites.",
    "other": "Three lectures; one term"
}

Adding a New Course

Definitions

POST /courses

Arguments

  • "identifier" : string unique identifier for the course
  • "name": string friendly name for the course with course code
  • "units": string how many units is the course, add unit/unit(s) beside number
  • "description": string description of the course if there is any
  • "other": string anything additional to add, course requisites, semesters taught

If course with identifier already exists, overwrites it

Response

-- 201 Created on success

{
    "identifier": "CLASSICS 1A03",
    "name": "CLASSICS 1A03 - Introduction to Classical Archaeology",
    "units": "3 unit(s)",
    "description": "A study of the history and methodology of Greek and Roman archaeology illustrated with materials from excavated sites.",
    "other": "Three lectures; one term"
}

Lookup Course Details

Definitions

GET /courses/<identifier>

Response

-- 404 Not Found if the course does not exist -- 200 OK on success

{
    "identifier": "CLASSICS 1A03",
    "name": "CLASSICS 1A03 - Introduction to Classical Archaeology",
    "units": "3 unit(s)",
    "description": "A study of the history and methodology of Greek and Roman archaeology illustrated with materials from excavated sites.",
    "other": "Three lectures; one term"
}

Delete a Course

Definitions

DELETE /devices/<identifier>

Response

--404 Not Found if device doesnt exist --204 No Content happened successfully but no content to return

Scraping Script

Returns CSV of McMaster course information. Scraped data using Selenium library.

If you want to use this script, make sure you install selenium's chrome driver and have it in the correct location.

FYI, This only scrapes information from the McMaster Calender (I noticed that its not always updated, etc there are courses listed on McMaster's CAS website that are not yet on the calender)

Screen Shot 2021-05-14 at 6 45 27 PM