Canvas på kth

För ett och ett halvt år sedan påbörjade vi arbetet med att införa ett nytt LMS på KTH: Canvas. Vi drog igång en pilot förra hösten när vi valde ut några kurser som fick vara testpiloter i den nya LMS:en.

Självklart var det en del problem, som det ju alltid är med ny teknik, men inget som vi inte kunde hantera. Det var tidigt tydligt att Canvas är ett välbyggt, kompetent system. Under våren drog vi igång på allvar, då kördes alla kurser på KTH i Canvas.

Vi satte ribban högt för hur integrationen mellan våra interna applikationer och Canvas skulle fungera. Målet var att så fort som en student registreras på en kurs i Ladok ska den få tillgång till motsvarande kurs i Canvas, vilket vi lyckades genomföra under våren.

Eftersom detta är en nördblogg ska man såklart gå in lite djupare på teknik också, eller hur? Vi använder huvudsakligen Node.js på kth, så även i detta fallet. Vi använder node 8, så äntligen kan vi använda oss av async/await! Vi försöker hålla oss till små microtjänster, så hittills har vi byggt fyra olika applikationer, bara för att hjälpa oss med Canvas-integrationen. Men då ska man komma ihåg att det är väldigt lite funktionalitet per app, där rekordet är ett rest-api med en enda route! Vi kör tjänsterna i Docker på Azure, och all kod finns tillgänglig på github.

Den senaste microtjänsten vi byggt, och kanske den mest spännande, är ett plugin till Canvas för att kunna få ut en lista på studieresultat inklusive personnummer. Vi har nämligen valt att inte låta Canvas hantera personnummer, så för att en lärare ska kunna hämta ut en sån fil behövde vi komplettera Canvasdata med data från vår ldap. Den appen har släppts som beta, koden finns tillgänglig här.

Antalet kurser och personer som körs i Canvas har kontinuerligt ökat. Idag ligger antalet kurser på över 1600.

Om någon är intresserad av att veta hur Canvas ser ut kan man titta här. Det finns nämligen ett antal kurser som är öppna i Canvas, dvs man behöver inte vara antagen/registrerad på kursen för att kunna titta på materialet.

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *