mcmikecreations / tum_info

TUM exam statistics and more at the Technical University of Munich.
https://mcmikecreations.github.io/tum_info/
GNU General Public License v3.0
41 stars 7 forks source link

Build Website

A bunch of useful information I've collected while studying at the Technical University of Munich. This includes TUM course statistics or TUM exam statistics, schools, departments and more!

The contributors imagined/came up with all of the course information in this repo randomly, including the grades. All matches with real courses and grades are purely coincidental.

How to contribute

Offered courses

The offered courses database is maintained in this repository by Vuenc. Please direct your contributions there. Once they are accepted, notify me about the update.

For developers: to update the website with new courses, edit and run python scripts/course_offered_parse.py from root folder. It has the same dependencies as building the app above.

Course exam statistics

You can help expand this website with new information by adding your own course exam statistics!

A single course

In short, create a new issue based on this template by going here and replace the values with your own data. The description is copy-pasted onto the page directly and follows the markdown format (but you can use plain text too). After some time, the statistics you have submitted will appear on the website. For now there's a manual review step done by me, so don't worry too much about breaking the website. When I see that everything is ok, I put a label on the issue and GitHub Actions take care of the rest by adding a new page to the website and building it.

All your courses program

If you're looking for a simple way to send me your grades, you can contribute using the executable file (Windows, Linux, MacOS). You'll find a video guide here. Now you can generate a file with all your grades and send it over Telegram or any other of the communication channels listed in the app!

For Linux users: the app may not be executable initially when you download it. You can fix it by running chmod +x <file_path>. Alternatively, you can create this script install_grades.sh:

bash
#!/usr/bin/bash

version="1.0.1"

wget "https://github.com/mcmikecreations/tum_info/releases/download/$version/Grades"
chmod +x ./Grades

And then run it using bash install_grades.sh.

For developers: to build the app, you need to:

  1. Install python>=3.7
  2. Install BeautifulSoup4 requests PySide6 pyinstaller through pip.
  3. You can test-run the app running python scripts/course_glob_ui.py from root folder.
  4. To build it, run pyinstaller scripts/course_glob_ui.spec, the results will be placed in the dist folder.
  5. To package for MacOS, you need to have an additional utility installed through brew install create-dmg. Then run ./scripts/course_glob_ui_build.sh from root folder.

Grade download script

A handy script was created to extract all grade reports for a TUMOnline student account. To run the script:

  1. Install git, add it to PATH.
  2. Fork the repository, clone your fork.
  3. Install Python 3.7 or newer, add python and pip to PATH.
  4. Run pip install requests.
  5. From repository root run python scripts/course_glob.py name=ab12cde@mytum.de pass=42424242.
  6. If you get errors, report them by creating a new issue.
  7. Check endterm/retake filenames and field in files. Check exam_type, mode, lang fields in files.
  8. Commit changes, push to your fork, create a pull request.

API

An official unofficial TUM info API is offered with all of the tabular data from the website.

Feature requests and bug reports

There also are issue templates for such cases back on GitHub. If something is wrong or you want something to get better, here's what to do:

  1. Create a new issue and outline what is wrong and/or what you need.
  2. (Optionally) If you want to try and fix the issue, state it in a comment, fork the repo, make the changes, and submit a pull request.

Building the project yourself

Building instructions for the grade download app are listed above. To build the website, you need to install jekyll by following the instructions from the official website. Afterwards, in the root folder run the following commands:

Scripts in the scripts folder: