Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 hovedkomponenter :

1- Canvas

2- FS : Her er det digeks Digeks-apiet (FS WS Digeks) som benyttes

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

3- ApplikasjonsApplikasjon-frontend : Implementert som en React-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 course-id, og nødvendig oauth-token for tilgang til Canvas API’et.

Merk at

...

informasjonen nevnt over ligger skjult og kryptert i JWS-tokenet, slik at front-

...

end ikke kjenner til dem selv.

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

Inc drawio
contentVer
zoom1
simple0
inComment0
custContentId2019721227
pageId2019164184custContentId2019721227
lbox1
diagramDisplayNamecanvas-tilbakeskriving.drawio
contentVer2
hiResPreview02
baseUrlhttps://unit.atlassian.net/wiki
diagramNamecanvas-tilbakeskriving.drawio
pCenter0
aspectC7-gt1TvuMByzqMRLSG- 1
width801
linksauto
tbstyletop
isUpload1
height229

...

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

...

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

...

Valg av resultater som skal overføres

Frontenden Front-end vil først hente ut om aktuell “Course” (Emne) og alle “Assigmens” definert på deni emnet, fra Canvas.

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

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

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

Når en Assignment og aktiviten aktiviteten resultatene skal flyttes til er valgt, vil applikasjonen hente alle “submissions” submissionsfra 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.

...

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” gradesatt til “complete”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” grader(Den som har tildelt karakter/satt resultatet). Personens løpenummer vil da brukes.

Brukte API endepukter

Canvas

GetCourse

/courses/:courseId

GetAssignments

/courses/:courseId/assignments/

GetSubmissions

/courses/:courseId/assignments/:assignmentId/submissions?include=user

GetCourseUser

/courses/:courseId/users/:userId

FS Digex

Valider resultat

/eksamen/sensur/FAGPWEB/valider

Registrer resultat

/eksamen/sensur/FAGPWEB/registrer

GetEksamensinfo

/eksamen/eksamensinfo

FS API

GetRoller

/roller

GetPersonRoller

/personroller

GerPersoner

/personer

(Bare når personløpenummer ikke er regisrert som sis-id)