stichtingsem / technology-prototype

Source code for any services or APIs created in the technology track in Summer 2020
6 stars 1 forks source link

Define content and structure of LML Entity #8

Closed cliftonc closed 4 years ago

cliftonc commented 4 years ago

The Leermiddelenlijst is a crucial entity in the exchange of information between the Marketplace, LMS and LA.

Notes so far:

cliftonc commented 4 years ago

@edwinverwoerd @niesink any chance that we can start to explore what the LML (or perhaps 'list of entitlements') may contain over coming days? Happy to assist in any way thats helpful - @HJTLN @dpronk this may be something you are also able to contribute to?

niesink commented 4 years ago

Sure, I can make some time either Wednesday or Thursday this week, I'll be out for a small holiday next week.

niesink commented 4 years ago

The diagram below shows what an entitlement (which I believe is what an LML consists of?) might look like.

I've tried to take into consideration all the remarks (on what an entitlement actually is) in all the issues in the functional overview repository. However I'd be surprised if I haven't gotten a couple of things wrong as this is not my/our main area of expertise. So let's see this as a starting point for further discussion 🙂

The entities School, Class, Student and Teacher here reference the same real-life entities as in #28 though their exact representation might differ in this situation (e.g. it might be sufficient to just reference a student by their ECK iD and not exchange any additional personal data).

image

cliftonc commented 4 years ago

@niesink thanks - this is a great start.

A few questions / additions:

mcginkel commented 4 years ago

Entitlement needs an id, so you can refer to it. (updates, refer to it from usage messages)

mcginkel commented 4 years ago

Are group and individual mutual exclusive? The entitlement is either for one person or for a group?

mcginkel commented 4 years ago

Should it be individual or a list of individuals? Same question for group: one or list of groups

I prefer lists in both cases

mcginkel commented 4 years ago

What is the meaning of amount? Max? or a forecast? If this is a Max, who should count how many are already used? (and why)

Can we remove amount ?

mcginkel commented 4 years ago

The subject code and level in Group:

Same for subject code: do we use the schools "Bijzondere filosofy" --> "geloof, leven en filosofie, Code 1059" (https://wetten.overheid.nl/BWBR0042332/2020-07-01)

I would suggest we make room for both. So we have the view from the SIS, and the mapping to reality.

mcginkel commented 4 years ago

Is a group always for one subject/level?

Suggestion: Yes, make a new group in the same entitlement if needed

cliftonc commented 4 years ago

Are group and individual mutual exclusive? The entitlement is either for one person or for a group?

I think they are exclusive - its either one or the other.

cliftonc commented 4 years ago

Should it be individual or a list of individuals? Same question for group: one or list of groups

I prefer lists in both cases

Given each entitlement is only for one product, I wonder if the scenario of multiple groups is realistic?

I think for the individual we are better off if we map one entitlement = 1 product for 1 individual.

edwinverwoerd commented 4 years ago

I I thought the way the LMS module creates its lists was out of scope. And that this is done entirely within the MP environment. What we have recorded within the Finance track is that the outcome (i.e. if the LML has been established [we do not speak any more about an entitlement any more here) makes the following information available to an LMS:

SchoolID EAN Level Grade Number Period of validity of the LML list

It is logical that the LMS has received data "in advance" from the SIS School Structure and must be sufficient to link the LML data back to a person. But maybe I don't understand the issue very well.

cliftonc commented 4 years ago

@edwinverwoerd you are correct, the Individual flow we are envisaging only applies for scenarios where an individual directly purchases for themselves, not via the LML - so for vocational.

mcginkel commented 4 years ago

Should it be individual or a list of individuals? Same question for group: one or list of groups I prefer lists in both cases

Given each entitlement is only for one product, I wonder if the scenario of multiple groups is realistic?

See earlyer comment on "Is a group always for one subject/level?"

mcginkel commented 4 years ago

I would like to see Both MP identifier and LA identifier in the entitlement.

Is publisher a name we us? or do we use LA?

edwinverwoerd commented 4 years ago

@edwinverwoerd you are correct, the Individual flow we are envisaging only applies for scenarios where an individual directly purchases for themselves, not via the LML - so for vocational.

Okay but I think that the SA/FA will provide this data
VO -> SchoolID, UserID, EAN, Periode geldigheid {B2B waarbij school betaalt, denk aan keuze vakken) MBO (persoonlijke aanschaf) -> UserID, EAN, Startdatum

And of course, the LMS will show the person what they need based on his course etc.

cliftonc commented 4 years ago

Initial version now here: https://github.com/stichtingsem/technology-prototype/pull/33/commits/8c6f1f7f88b8c50e32df62045bcfd64bcbc83fc3

edwinverwoerd commented 4 years ago

I would like to see Both MP identifier and LA identifier in the entitlement.

Is publisher a name we us? or do we use LA?

MP identifier seems logical to me. But not LA. For this, the Catalog (service) of the LA's as a source must be consulted. The EAN is then the key to do this.

cliftonc commented 4 years ago

@edwinverwoerd the only advantage of including the LA information (which I have in the first pass, along now with the MP identifier) is that it makes it easier to resolve issues as the information is at hand.

We can discuss what the MP identifier is, but my simplistic view is that it is probably best as the base URL of the MP - e.g. iddink.nl - better than 1,2,3.

edwinverwoerd commented 4 years ago

@edwinverwoerd the only advantage of including the LA information (which I have in the first pass, along now with the MP identifier) is that it makes it easier to resolve issues as the information is at hand.

We can discuss what the MP identifier is, but my simplistic view is that it is probably best as the base URL of the MP - e.g. iddink.nl - better than 1,2,3.

Okay and yes the smarter the better. But when I think of 2.3 million licenses, we are not going to exchange a lot of double data. Because what is the right one.

If there is an issue, the data can be displayed on the screen from different sources. With which we immediately reconnect with the principle of limit the transmission of data that you can also retrieve directly.

niesink commented 4 years ago

In response to https://github.com/stichtingsem/technology-prototype/issues/8#issuecomment-673494329:

I would suggest we make room for both. So we have the view from the SIS, and the mapping to reality.

I see a school_subject_code and school_level was added to the API spec here: https://github.com/stichtingsem/technology-prototype/blob/44a07d6ff8cb0c0a1192fe927e1c5b45bed58045/reference/entitlement.v1.yaml#L319-L324

I'm not sure this is useful/realistic, as in my experience a school internally might use their own name/abbrevation for a certain subject, but technically they will still on rely on official codes and levels. The only related use case I can think of is subjects that are not (yet) officially recognized by MinOCW, but in that situation there is no standard_subject_code and perhaps not even a standard_level.

cliftonc commented 4 years ago

@niesink I added it as I wasn't sure - it is optional and for display only, thinking more on the human side - it may be useful to ensure that if a school has renamed something that the other systems in its ecosystem can also refer to it by the name they expect?

niesink commented 4 years ago

@cliftonc yeah I agree that might be useful, though in that case the two fields schoolSubjectCode and schoolLevel should be replaced with schoolSubjectName I think. I don't see a school using/defining their own code or level.