OpenAPI Specification for Modulplaner

Sean Blackburn a3283e8a10 chore: Rename personal-events to events преди 1 година
.woodpecker a71d07b2fb chore: Use woodpecker instead of forgejo actions преди 1 година
src a3283e8a10 chore: Rename personal-events to events преди 1 година
.copier-answers.yml a71d07b2fb chore: Use woodpecker instead of forgejo actions преди 1 година
.gitignore a71d07b2fb chore: Use woodpecker instead of forgejo actions преди 1 година
.pre-commit-config.yaml 4cb29591df feat: initial version преди 1 година
.releaserc.yaml ee8cff7dd6 ci: Auto replace version number in OpenAPI file преди 1 година
LICENCE 4cb29591df feat: initial version преди 1 година
README.md 14ab2b2c5b fix: Add security definitions преди 1 година
cspell.config.yaml cbfd96588a feat!: Restful design преди 1 година
makefile 4cb29591df feat: initial version преди 1 година

README.md

Modulplaner OpenAPI

OpenAPI documentation of the modulplaner API

Optional endpoints

This OpenAPI spec contains some "optional" endpoints. This is down to the fact, that the module planner can be used on a static website, or also be integrated into a server that is connected to a database.

When the Modulplaner is set to be hosted on a static site, the endpoints marked with [OPTIONAL] can not be reached.

Authentication

The defined authentication can be exchanged for any valid authentication. The spec only represents which endpoints should require authentication when implementing a server.

Definitions

  • Module: A specific unit or component of a broader course of study. It focuses on a particular topic or subject area within a course. Modules are usually part of a larger framework, and a course will consist of multiple modules.
  • Course: Refers to the entire program of study leading to a degree. It encompasses multiple modules that are structured over the duration of the (bachelors) program.
  • Term: Refers to any academic period, but it is often associated with systems that divide the academic year into two or more periods.
  • Lecture: A single session, where the lecture of a Module is held.
  • Lecture Series: An entire series over a term of lectures (of a single class)
  • Class: A subset of students, that attend a Lecture.
  • Lecturer: The person teaching the students.
  • Student: The person, who should be learning about new stuff.

Do not use these terms

  • Semester: This term is too limiting compared to Term, as it always refers to 6 months. Some schools will use different lengths for their terms.
  • Degree: We should use the term Course, as the degree is what you receive when completing a Course.
  • Teacher: Use Lecturer instead, as this is the common term used by universities.

Types used

The numeric fields have an additional format tag assigned:

  • u8: Unsigned 8 bit (0 - 255)
  • u16: Unsigned 16 bit (0 - 65'535)
  • u…: Unsigned … bit

  • i8: Signed 8 bit (-128 - 127)

  • i16: Signed 16 bit (-32'768 - 32'767)

  • i…: Signed … bit

  • f32: 32 bit floating point number

  • f64: 64 bit floating point number