Skip to content
generated from KTH/node-web

Kurs-pm-web is a microservice with the public view of course memos. It uses React, MobX, and is based on KTH/node-web.

License

Notifications You must be signed in to change notification settings

KTH/kurs-pm-web

Repository files navigation

Welcome to kurs-pm-web 👋

Version Prerequisite License: MIT

Introduction

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.

Overview

A course memo is an actual plan for taking the course. A course memo help students to plan and prepare for all the learning activities during the course offering. A course memo contains information about the goals of the course, activities, preparations, detailed information about the examination, and contacts. It is particularly important for students just before the start of the course. A teacher, or a course coordinator, creates a course memo, and it must be published no later than by course the start.

Kurs-pm-web is a microservice with the public view of course memos. It uses React and is based on node-web.

API:s

Kurs-pm-web fetches data from:

  • Course memo API /api/kurs-pm-data
  • Course information API /api/kursinfo
  • API to store information about course syllabuses /api/kursplan
  • API för kurs- och programinformation /api/kopps/v2/

Related projects

Prerequisites

  • Node.js 18

Secrets for Development

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.

For Development

Install

npm install

You might need to install as well:

npm install cross-env
npm install concurrently

Usage

Start the service on localhost:3000/kurs-pm/:courseCode.

npm run start-dev

Debug in Visual Studio Code

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 kursutvecling-web",
      "program": "${workspaceFolder}/app.js",
      "envFile": "${workspaceFolder}/.env",
      "env": {
        "NODE_ENV": "development"
      }
    }
  ]
}

Run tests

npm run test

Performance Tests

npm run test-performance-in-docker

Performance tests are run with Artillery. All api:s are mocked, so only the performance of kurs-pm-web is tested.

Monitor and Dashboards

To monitor status during local development:

To see branch information during local development:

Use 🐳

Copy docker-compose.yml.in to docker-compose.yml and make necessary changes, if any. KURS_PM_DATA_API_URI probably needs to be set to reflect your local development setup.

docker-compose up

Deploy

The deployment process is described in Om kursen: Release till produktion.

Pre-**-git-hooks

We use husky to run pre-commit and pre-push hooks and lint-staged to run eslint and prettier.

Nomenclature

Name Aliases Example Notes
Course Memo Name  courseMemoName Course memo Autumn 2020-1 courseMemoName in database is not the same thing
Course Title  courseTitle SF1625 Calculus in One Variable 7.5 credits
Department Name  departmentName SCI/Matematik

Author

👤 KTH

About

Kurs-pm-web is a microservice with the public view of course memos. It uses React, MobX, and is based on KTH/node-web.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published