/tum-ects

Crawler/Parser + REST API to map TUM modules to ECTS / degrees to curricula

Primary LanguagePython

TUM ECTS

A FastAPI application to manage TUM degrees, modules, and mappings. This application collects data from TUM Campus Online, crawls degree and module information, and provides a convenient API to access the data.

Note that the crawler may take approximately 7 to 8 hours to collect all degrees and their associated information.

Database Scheme

image

Instructions on how to run

1) Clone the repository

git clone https://github.com/rchr1/tum-ects.git
cd tum-ects

2) Create and run the containers

docker-compose up -d

The API will be available at localhost:5000. The crawler needs a few hours to collect all degrees.

API Endpoints

  1. Get the number of degrees and modules:
GET http://localhost:5000/
  1. Get all degrees:
GET http://localhost:5000/degrees
  1. Get the info of a specific degree:
GET http://localhost:5000/degree?degree_id=<degree_id>
  1. Get the info of a specific module:
GET http://localhost:5000/module?module_id=<module_id>
  1. Find a module by its number:
GET http://localhost:5000/find_module?nr=<module_number>
  1. Get the modules of a degree:
GET http://localhost:5000/modules_of_degree?degree_id=<degree_id>[&valid_from=<valid_from>&valid_to=<valid_to>&degree_version=<degree_version>]