OpenAPI Specification for Modulplaner

Sean Blackburn ac78ab1ec2 fix: Use status code 201 for post requests пре 1 година
.woodpecker a71d07b2fb chore: Use woodpecker instead of forgejo actions пре 1 година
src ac78ab1ec2 fix: Use status code 201 for post requests пре 1 година
.copier-answers.yml 7649ee6094 chore: Update to latest template пре 1 година
.gitignore a71d07b2fb chore: Use woodpecker instead of forgejo actions пре 1 година
.markdownlint-cli2.yaml 7649ee6094 chore: Update to latest template пре 1 година
.pre-commit-config.yaml 7649ee6094 chore: Update to latest template пре 1 година
.releaserc.yaml 7649ee6094 chore: Update to latest template пре 1 година
LICENCE 4cb29591df feat: initial version пре 1 година
README.md cc277b162f feat: Add asset uploading, management endpoints and missing 404 errors пре 1 година
cspell.config.yaml 7649ee6094 chore: Update to latest template пре 1 година
makefile 76fe64692a chore: Less noisy docker output for previewing docs пре 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.

  • [OPTIONAL:Storage]: Storage endpoints for the users/students
  • [OPTIONAL:Management]: management endpoints for administrators

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/Lecture Series.
  • Lecturer: The person teaching the students.
  • Student: The person, who should be learning about new stuff.
  • Revision: Revision of something that has been previously published.
  • Block (lecture): A lecture, that is held over a short timespan (shorter than a term), where the students visit daily.

  • First name: The first/given name of a person

  • Surname: The Surname/Family name (different to last name in some cases!)

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.
  • Version: If a revision is meant instead.

Types used

The numeric fields have an additional format tag assigned.

Unsigned

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

Signed

  • i…: Signed … bit
  • i8: Signed 8 bit (-128 - 127)
  • i16: Signed 16 bit (-32'768 - 32'767)

Floating

  • f32: 32 bit floating point number
  • f64: 64 bit floating point number