Skip to content

MatALass-ISM/academic-workload-analytics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SWS Quota Analysis (In‑House Professors)

Compute, per Campus and Study Program, the share of semester weekly hours (SWS) taught by in‑house professors, based on course and professor datasets.

Data protection note: this repository is designed so that raw inputs never need to be committed. Put real files in data/raw/ locally (or in a secure storage), and keep the Git history clean.

What this produces

In reports/:

  1. sws_quota_by_campus.xlsx
    One sheet per campus with: StudyProgram, TotalSWS, OwnSWS, OwnSWS%.

  2. sws_quota_by_campus_colored.xlsx (optional)
    Same report, with conditional color gradient on the percentages.

  3. campus_workbooks/ (optional)
    One Excel workbook per campus, one tab per study program, listing:

    • Course name
    • Lecturer name
    • Is professor?
    • Other study programs (same campus)
    • Quota recap at the end

Repository structure

.
├─ src/quotas_professors/        # Python package (pipeline + modules)
├─ scripts/                      # Convenience entrypoints
├─ data/                         # Local-only inputs (gitignored)
│  ├─ raw/
│  └─ processed/
├─ reports/                      # Generated outputs (gitignored)
├─ notebooks/                    # Exploration (optional)
├─ tests/                        # Unit tests (optional)
└─ docs/                         # Project notes (optional)

Quickstart

1) Create a virtual environment & install

python -m venv .venv
# Windows: .venv\Scripts\activate
source .venv/bin/activate
pip install -U pip
pip install -e .

2) Add your input files (local)

Put your files here:

  • data/raw/CoursesSS25.csv
  • data/raw/Professors.xlsx

Your Courses*.csv is expected to be ; separated (configurable).

3) Run the pipeline

quotas-professors --semester SS25

Outputs will be written to reports/.

CLI options

quotas-professors --help

Common examples:

# Custom folders
quotas-professors --data-dir /secure/share/raw --output-dir ./reports

# Skip colorized report
quotas-professors --no-colored

# Skip detailed per-campus workbooks
quotas-professors --no-campus-workbooks

# Override filenames
quotas-professors --courses MyCourses.csv --professors Professors_2025.xlsx

Data quality & matching logic (high level)

  • Lecturer names are normalized (case/accents/punctuation) before matching.
  • Matching is intentionally conservative to reduce false positives.
  • Ambiguous names should be reviewed in the detailed campus workbooks.

If you need an audit trail, consider adding an "unmatched lecturers" export and a manual mapping file (data/processed/name_overrides.csv) that you can maintain locally.

Data security checklist

  • Keep the repo private.
  • Never commit data/ or reports/ (already gitignored).
  • Enable secret scanning and push protection in GitHub settings.
  • If you ever accidentally commit sensitive files:
    • rotate credentials if any were included
    • rewrite history (e.g., git filter-repo) and force-push

Development (optional but recommended)

Lint/format with pre-commit

pip install pre-commit
pre-commit install
pre-commit run --all-files

Run tests

pytest -q

License

Proprietary — internal use only.

About

Data analytics pipeline for academic workload and quota analysis, designed with production-grade structure, reproducibility, and data security best practices.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages