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.
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.