mitodl / mit-learn

BSD 3-Clause "New" or "Revised" License
0 stars 2 forks source link

Determine appropriate values for platform and offered_by #9

Closed mbertrand closed 1 year ago

mbertrand commented 1 year ago

Possible values for platform and offered_by are incorrect (for example, Micromasters should not be included in one or both). Determine what the appropriate possible values are for each.

Current values:

class OfferedBy(Enum):
    """
    Enum for our Offered By labels. They are our MIT "brands" for LearningResources
    (Courses, Bootcamps, Programs) and are independent of what platform.
    User generated lists UserLists (like a learning path) don't have offered by "brand".
    Values are user-facing.
    """

    mitx = "MITx"
    ocw = "OCW"
    micromasters = "MicroMasters"
    bootcamps = "Bootcamps"
    xpro = "xPRO"
    oll = "Open Learning Library"
    csail = "CSAIL"
    mitpe = "Professional Education"
    see = "Sloan Executive Education"
    scc = "Schwarzman College of Computing"
    ctl = "Center for Transportation & Logistics"

class PlatformType(Enum):
    """
    Enum for platforms
    """

    ocw = "ocw"
    mitx = "mitx"
    mitxonline = "mitxonline"
    micromasters = "micromasters"
    bootcamps = "bootcamps"
    xpro = "xpro"
    oll = "oll"
    youtube = "youtube"
    podcast = "podcast"
    csail = "csail"
    mitpe = "mitpe"
    see = "see"
    scc = "scc"
    ctl = "ctl"

Correct values: TBD

Designs and Mockups

TBD

Acceptance Criteria:

Ferdi commented 1 year ago

offered by It's an organization at MIT that offer the learning resource

ID | Name | url

ocw | MIT OpenCourseWare| http://ocw.mit.edu mitx | MITx | ? bootcamps | MIT Bootcamps | http://bootcamps.mit.edu xpro | MIT xPRO | xpro.mit.edu mitpe | MIT Professional Education | https://professional.mit.edu/ see | MIT Sloan Executive Education | https://exec.mit.edu/s/ horizon | MIT Horizon | https://horizon.mit.edu/

platfrom The platform where the learning resource is hosted / consumed by learners. For example, MITx offers learning resources in 2 different platforms, edx.org and mitxonline.mit.edu

id | name | url edx | edx | edx.org mitxonline | MITx Online | mitxonlihe.mit.edu xpro | MIT xPRO | xpro.mit.edu emeritus | Emeritus | ... etc.

mbertrand commented 1 year ago

@Ferdi Where does micromasters fit into this? We are importing program data from the micromasters api at https://micromasters.mit.edu//api/v0/catalog/. What are the appropriate platform and offered_by values for these programs?

Ferdi commented 1 year ago

"MicroMasters" is a specific type of program. All programs of type "MicroMasters" are offered_by=MITx DEDP program has platform=MITx Online The rest of the programs have platfrom=edx.org

mm.mit.edu is not really a platform. I think the reason we are importing programs from there is because edx.org does not offer that information in their api.

mbertrand commented 1 year ago

@Ferdi in open-discussions, there are a bunch of OfferedBy values that are imported via podcasts (and videos?) not on the list above. For example:

Arts at MIT
Broad Institute
CBMM
Center for International Studies
Department of Biology
Department of Urban Studies and Planning
Energy Initiative
J-PAL North America
Lex Fridman
MIT Alumni
MIT BLOSSOMS
MIT Climate
MIT Club of Boston
MIT Club of Northern California
MIT Comparative Media Studies
MIT Department of Biology
MIT Energy Initiative
MIT LGO
MIT Medical
MIT News
MIT Press
MIT Technology Review
Physics Technical Services Group
School of Humanities, Arts, and Social Sciences
The Martin Trust Center for MIT Entrepreneurship
Video Productions

Do we want these or not? Or should we stick to an official list of valid values and set offered_by to null if the podcast/video value for it isn't in that list?

mbertrand commented 1 year ago

Courses and programs imported from the Micromasters catalog API: offered_by = mitx platform = edx (except DEDP program, which is mitxonline) - there is no indication of this difference in the API response btw. Will have to conditionally set to "mitx" if "programpage_url" == "http://micromasters.mit.edu/dedp/". Will there be others in the future?

Courses and programs imported from the mitxonline catalog API: offered_by: mitx platform: mitxonline

Courses and programs imported from the Open Learning Library catalog API: offered_by: mitx platform: oll

Courses and programs imported from the bootcamps catalog API: offered_by: bootcamps platform: bootcamps

Courses and programs imported from the xpro catalog API: offered_by = xpro platform = should be in the xpro API response now, look for it there.

Courses and programs imported from OCW: offered_by: ocw platform: ocw

For most other courses/programs, like those imported from prolearn, offered_by and platform will be the same unless told otherwise. For example, Sloan Executive Education will be offered_by : see and platform: see

Podcasts: platform: podcast and offered_by depending on values in this repo, but only if they match existing offered_by values in the database.

Videos: platform: youtube, offered_by: depending on values in this repo, but only if they match existing offered_by values in the database.

There will not be more than one offered_by value for a learning resource anymore, so the relationship between LearningResource and LearningResourceOfferor should be changed to reflect this.

mbertrand commented 1 year ago

Courses and programs imported from the xpro catalog API: offered_by = xpro platform = should be in the xpro API response now, look for it there.

@pdpinch @ferdi Looking at the xpro API response for courses, the possible values include "xPRO", "Emeritus", "Global Alumni", and lots of null. Should the null ones really be null? Or default to xpro?

Ferdi commented 1 year ago

I guess, can you check where some of the "null" ones run on xpro?

mbertrand commented 1 year ago

It's all over the place.

Some examples:

http://xpro.mit.edu/courses/course-v1:xPRO+IOTx/:

http://xpro.mit.edu/courses/course-v1:xPRO+LASERxE3/

http://xpro.mit.edu/courses/course-v1:xPRO+NANO/

http://xpro.mit.edu/courses/course-v1:xPRO+PDT/

http://xpro.mit.edu/courses/course-v1:xPRO+BioEngx/