Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Dette dokumenterer dataflyten og virkemåten for integrasjons-applikasjonen : Tilbakeskriving av resultater til FS

Bestilling/beskrivelse :

Denne applikasjonen er implementer basert på bestillingen som er laget av sektoren her : https://docs.google.com/document/d/1681lcYoBoWCmtR8_xCi6V6HKhA3p1T1Dy_Z7mYgYJM4/edit#heading=h.4vqb2zmwwn4o.

Oppsett :

Applikasjonen er en LTI-applikasjon, som må legges til Canvas for å kunne benyttes. Veiledning for det finnes her : Oppsett av LTI applikasjonen for: Tilbakeskriving av resultater til FS

Virkemåte / Arbeidsflyt :

Hele flyten består av 4 hoved komponenter :

1- Canvas

2- FS : Her er det digeks-apiet som benyttes

2- Appkasjons-backend : Implementert som en mule api-applikasjon

3- Applikasjons-frontend : Implementert som en React-applikasjon

Flyten starter med brukeren som i Canvas, inne i et bestemt emne ( I Canvas kalt course), klikker på applikasjonen. Hva den heter er avhengig av hva navnet administratoren har gitt applikasjonen da den ble satt opp som en LTI applikasjon.

LTI-flyten sørger for at front-enden starter opp, sammen med en en jws-token. JWS-tokenet, inneholder all nødvendig informasjon som f.eks. bruker-id, cours-id, og nødvendig oauth-token for tilgang til Canvas API’et. Merk at den informasjonen ligger skjult og kryptert i JWS-tokenet, slik at front-enden ikke kjenner til dem selv.

Frontenden vil bare kommunisere med backenden og vil da sende med jws-tokenet sammen med alle kall til backend. På den måten vil backenden ha nødvendig info for å kunne fullføre operasjoner mot Canvas og FS. Backenden vil da for hvert innkommende kall, verifisere og dekode JWS-tokenet.

Tilgangskontroll mot Fagpersonweb

Denne applikasjonen skal bare kunne brukes av faglærer som har nødvendige roller/tilgang i Fagpersonweb. Dette sjekkes ved kall til FS (via backend til FS-API). Først sjekkes det om personen (brukeren av applikasjonen), har tilgang til Emnet. Hvis ikke, sjekkes det om personen har tilgang til hele Undervisningsenheten.

Dette gjøres på følgende måte:

Først hentes alle roller med Fagpersonweb-tilgang fra FS. Kall til /roller med fagpersonWebTilgang=true

Så hentes alle roller brukeren har for emnet. Kall til /personroller med oppgitt emne.kode og emne.version og personløpenummer

Hvis personen har en gyldig rolle (innenfor gyldig periode) som også har tilgang til Fagperson-web, aksepteres tilgangen.

Ellers hentes alle roller brukeren har for undervisningsenheten. Kall til /personroller med oppgitt emne.kode, emne.version, semester.ar, semester.termin og personløpenummer.

Hvis personen har en gyldig rolle (innenfor gyldig periode) som også har tilgang til Fagperson-web, aksepteres tilgangen. Ellers får vedkommende feilmelding.

Valg av resultater som skal overføres

Frontenden vil først hente ut om aktuell “Course” (Emne) og alle “Assigmens” definert på den.

Den vil samtidig bruke feltet “sis_course_id” (som skaffes ved kall til /api/v1/courses/:id) for å bygge en vurderingsId. Det er påkrevd og en forutsetning at “sis_course_id” er bygget opp på denne måten: UE_192_AOS341_1_2019_HØST_1.

Den informasjonen brukes da til å slå opp mot FS (/eksamen/eksamensinfo) for å hente ut alle obligatoriske-aktiviteter for gitt vurdering. Bare de eksamendelene som har følgede statusObligatoriskAktivitet == "J", vil plukkes opp.

Brukeren vil da bli sittende igjen med oversikt over alle “Assignments” fra Canvas og en liste av aktiviteter fra FS. Vedkommende må da velge resultater fra hvilken ““Assignment” skal overføres til hvilken aktivitet i FS. Dette gjøres i det grafiske GUIet.

Når en Assignment og aktiviten resultatene skal flyttes til er valgt, vil applikasjonen hente alle “submissions” fra Canvas. Det er igjen frontend som kaller API på backend som igjen henter informasjonen fra Canvas API. Der vil den ha oversikt over hvem som har levert og hvem som er godkjent.

Overføring til FS

Brukeren kan velge om bare godkjente resultater skal overføres eller alle. Når brukeren har valgt, vil aktuelle resultater overføres til FS. Dette gjøres ved at backend vil kalle dette mot FS :
“/eksamen/sensur/FAGPWEB/registrer”.
Resultater med “grade” satt til “complete”, vil sette resultat:“Godkjent”, ellers vil det settes status:"S"
Saksbehandler vil settes til personen som bruker applikasjonen. Personens løpenummer vil da brukes.
Sensor vil settes til “grader” (Den som har tildelt karakter/satt resultatet). Personens løpenummer vil da brukes.

  • No labels