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.yml
and fill out:CANVAS_ACCESS_KEY_NAME
CANVAS_ACCESS_KEY
APP_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/templates
likerolle_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.json
file - 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.json
file 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 update
to fetch the latest versions of PHP packages. -
Security Audits: Use tools like
composer security-checker
to perform security audits and identify potential vulnerabilities in PHP packages.
-
Update Packages: Regularly run
npm update
to fetch the latest versions of dependencies. Usenpm outdated
to check for available updates. -
Security Audits: Perform security audits using
npm audit
to identify and resolve potential vulnerabilities.