The course information project (KIP) is an initiative at KTH that was launched in 2018 to improve the quality and availability of information about KTH:s courses. The background to the project is, among other things, that it was difficult for the student to find information about the courses and even more difficult to compare information about several courses. The reason for the problems is scattered course information in several places and that there is no uniformity or assigned places for the course information. The project takes measures to consolidate course information into two locations and to present the information in a manner that is uniform for KTH. The student should find the right information about the course, depending on their needs. The result of the project is a public course site where the correct course information is collected and presented uniformly. Also, a tool is developed for teachers to enter and publish course information. Eventually, this will lead to the student making better decisions based on their needs, and it will also reduce the burden on teachers and administration regarding questions and support for the student.
🏠 Homepage
Kursinfo-web is a microservice with the public view of course information. It uses React, MobX, and is based on node-web.
Kursinfo-web fetches data from:
- Course information API
- Dev (Stage): api-r.referens.sys.kth.se/api/kursinfo
- Prod (Active): api.kth.se/api/kursinfo
- API to generate course syllabuses’ PDF:s
- Dev (Stage): api-r.referens.sys.kth.se/api/kursplan
- Prod (Active): api.kth.se/api/kursplan
- Course memo API
- Dev (Stage): api-r.referens.sys.kth.se/api/kurs-pm-data
- Prod (Active): api.kth.se/api/kurs-pm-data
- API för kurs- och programinformation
- Dev (Stage): api-r.referens.sys.kth.se/api/kopps/v2/
- Prod (Active): api.kth.se/api/kopps/v2/
- Node.js 18.0.0
- Ansible Vault
Secrets during local development are stored in a gitignored .env
file (env.in
can be used as template for your .env
file). More details about environment variable setup and secrets can be found in confluence.
First time you might need to use options --ignore-scripts
because of npm resolutions:
npm install --ignore-scripts
or
npm install
You might need to install as well:
npm install cross-env
npm install concurrently
Start the service on localhost:3000/student/kurser/kurs/:courseCode.
npm run start-dev
It's possible to use debugging options available in Visual Studio Code Add to .vscode file launch.json:
- Microsoft
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug kursinfo-web",
"program": "${workspaceFolder}\\app.js",
"envFile": "${workspaceFolder}\\.env",
"env": {
"NODE_ENV": "development"
}
}
]
}
- Mac, Unix and so on
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug kursinfo-web",
"program": "${workspaceFolder}/app.js",
"envFile": "${workspaceFolder}/.env",
"env": {
"NODE_ENV": "development"
}
}
]
}
The deployment process is described in Build, release, deploy. Technical details, such as configuration, is described in How to deploy your 🐳 application using Cellus-Registy and 🔧 How To Configure Your Application For The Pipeline.
👤 KTH
- Website: kth.github.io/
- Github: @KTH