This platform is operated by The Norwegian Directorate of Education's Department for Digital Services, which is responsible for managing a number of national digital solutions that support education and skills development.
KPAS provides competency packages across various themes to enhance skills and practices in kindergartens, schools, the Educational Psychological Service (PPT), training companies, and examination boards. The platform is designed to support collaborative and long-term professional development with embedded process and leadership support.
The application leverages LTI (Learning Tools Interoperability) standards for seamless integration with the Canvas LMS, enhancing the native functionalities of the learning management system. The KPAS also features a robust REST API that extends Canvas's capabilities by offering additional features and functionalities, which are utilized by both the LTI tools and the frontend project.
Services
| Service | Environment | URL |
|---|---|---|
| API | Production | https://kpas.kompetanse.udir.no/ |
| API | Stage | https://kpas.staging.kompetanse.udir.no/ |
Related Codebases
| Name | Description |
|---|---|
| Frontend | Custom frontend for Canvas LMS |
| Statistics API | Collects and serves statistics data for KPAS |
Quick links
- Git: A free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
- Visual Studio Code: A lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux.
- Docker: A tool for developing, shipping, and running applications inside lightweight, portable containers.
- Docker Compose: A tool for defining and running multi-container Docker applications.
- ngrok: A tool that enables you to expose a local development server to the internet, securely tunneling public URLs to your local machine.
- Open up
docker-compose.ymland fill out:CANVAS_ACCESS_KEY_NAMECANVAS_ACCESS_KEYAPP_URL
-
Start:
docker compose up -
Stop:
docker compose down
You can use the CLI method to populate the database, which involves executing multiple API requests towards NSR and Canvas LMS. This can be inefficient and time-consuming, so if possible it's advisable to directly import a database dump from the stage environment.
- Start up the application:
docker compose up - Log into the docker container:
docker exec -it kpas_app bash - Run database migrations:
php artisan migrate - Populate the database:
- Nasjonalt skoleregister:
php artisan fetch_from:nsr - Canvas:
php artisan fetch_from:canvas
- Nasjonalt skoleregister:
Alternatively, you can directly utilize the stage database by updating all variables prefixed with DB_ in the .env file.
- Login to Canvas LMS with an admin user
- Click on Administrator->Unit Canvas->Utviklernøkler
- Than click on the button that says + Utviklernøkler->LTI nøkkel
- Under Konfigurer->Metode select the "Lim inn json" option
- Then open the LTI template you want to add from
database/templateslikerolle_grouper.json - Copy & paste the contents into "LTI 1,3 Konfigurasjon" field
- Fill out the other fields on the left side
- "Nøkkelnavn" and "Merknader" with the title value from the json contents
- "Eierens epost" with your email
- Then click save and activate the key by clicking the toggle button in the list view
- From the "Utviklernøkler" page in admin copy the LTI client ID value under "Detaljer" (ex. 37270000000000266)
- Paste your client ID into the
database/configs/config_platform.jsonfile - Go into the course where you want to add the LTI tool
- Click on Innstillinger->Apper->Vis applikasjonskonfigurasjoner->+ App
- Under the "Konfigurasjonstype" field select the "Av klient-ID" option
- Paste the inn your client_id and save
- Then find the LTI tool in the list click on the cog icon->Grupperings-ID
- Copy & paste the value into your
config_platform.jsonfile under deployment array (ex. 1230:c2a0c788cf1e97c91dfa1d02933fb1994aa7e81c) - Refresh and the LTI should show up in the side menu, click on it and you are all setup
- Same proccess as above but instead of going into a course
- Click on Administrator->Unit Canvas->Innstillinger and add your LTI there
Maintaining a Laravel project with a Vue.js frontend involves regular updates to ensure both the backend and frontend remain secure, performant, and aligned with the latest web standards. Here’s how updates are carried out across different components of the project:
-
Update Packages: Run
composer updateto fetch the latest versions of PHP packages. -
Security Audits: Use tools like
composer security-checkerto perform security audits and identify potential vulnerabilities in PHP packages.
-
Update Packages: Regularly run
npm updateto fetch the latest versions of dependencies. Usenpm outdatedto check for available updates. -
Security Audits: Perform security audits using
npm auditto identify and resolve potential vulnerabilities.
