OpenAPI Specification for Modulplaner

Sean Blackburn 013818e871 feat: All endpoints return an object 1 سال پیش
.woodpecker a71d07b2fb chore: Use woodpecker instead of forgejo actions 1 سال پیش
src 013818e871 feat: All endpoints return an object 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 cc277b162f feat: Add asset uploading, management endpoints and missing 404 errors 1 سال پیش
cspell.config.yaml 8ce669a615 fix: Clean up terminology 1 سال پیش
makefile b5a8b2f2a2 chore: Add a short description to all tags 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