Skole projekt

Marts 2024

Opgavebank til industriens uddannelser

En full-stack undervisnings platform bygget med svelteKit og postresql.

Et undervisnings system, hvor undervisere kan oprette projekter og ressourcer til eleverne på data og kommunikations uddannelserne.

Opgavebank til industriens uddannelser

01

Features

Systemet indeholder et email og kode login system med email bekræftelse via mail, og funktioner til at nulstille glemte adgangskoder. Hvis man er underviser eller administrator kan man logge ind. Som underviser kan man oprette projekter op lægge dem op på opgavebanken. Systemet understøtter også af filer og billeder via nodes filsystem.

Features

02

Teknisk forklaring

Systemet er bygget med SvelteKit, som er et full-stack framework. Sidens benytter sig af en kombination af client,og server-side rendering for at optimere hjemmesidens hastighed. Projektet bruger Postgresql som primære database og jeg er lavet et ER-diagram over databasen.

Teknisk forklaring

03

Middle-ware / Hooks

Jeg har valgt at benytte mig af hooks til at administrere “user state” i systemet. Før hver transaktion til backenden, tjekker jeg for om brugeren er logget ind, ved at kigge på JWT token som bliver gemt i cookies ved login. Hvis brugerens er logget ind, henter siden de seneste data fra brugeren og gemmer det i en “locals” variable som er synlig overalt på backenden. På den måde kan jeg altid se om en bruger er logget ind og på adgang til oplysniger om brugeren.

Middle-ware / Hooks

04

Backend form validation

Jeg bruger SvelteKit actions til alle forms på siden. Form data’en bliver herefter sendt til backend’en hvor den bliver valideret. F.eks. at adgangskoden er mindst 8 tegn. Hvis der er fejl i datatens format bliver koden form datat’en sendt tilbage til klienten, sammen med fejl meddelelser som bliver vist under det input med forkert data. Dette gør det umuligt at snyde systemet og uploade forkert data i databasen.

Backend form validation

05

Sentry

Hele systemet er overvåget af sentry. Det vil sige at hver gang der sker en fejl i systemet - forhåbentlig aldrig - bliver det automatisk send til sentry med en masse relevante information. Dette sker på både front- og backend, og gør det super nemt at finde og rette fejl i koden.

Sentry

Kenni-kollemorten.dk © All rights reaerved