Skip to main content

EvaP

Project description

EvaP - Evaluation Platform

Build Status Codacy Badge codecov

What is EvaP?

EvaP is the course evaluation system used internally at Hasso Plattner Institute at the University of Potsdam.

For the documentation, please see our wiki.

Development Setup

We use nix to manage the development environment.

  1. Windows only: Install the Windows Subsystem for Linux (WSL) using wsl --install -d Ubuntu-24.04 (you may have to restart your computer and run this command again). Enter the WSL environment using the wsl command. On your first entry, you need to choose a username and password - anything works (for example: username "evap", password "evap"). Perform the next step outside of /mnt, for example by going to your home directory (cd ~).
  2. Install git. Run the following commands to clone and enter the EvaP repository:
    git clone --recurse-submodules https://github.com/e-valuation/EvaP.git
    cd EvaP
    
  3. On Linux and WSL, install nix by running ./nix/setup-nix. On MacOS, install nix using the Determinate Nix Installer. Afterwards, if you get a permission error when running nix, restart your computer.
  4. Start the needed background services for EvaP:
    nix run .#services-full
    
  5. Open a new terminal. Enter the development shell and start EvaP:
    cd EvaP
    nix develop
    ./manage.py run
    
  6. Open your web browser at http://localhost:8000/ and login with email evap@institution.example.com and password evap.

To stop EvaP or the background services, press Ctrl-C. To exit the development shell, press Ctrl-D or type exit.

Inside the development shell, after quitting the background services, you can run the command clean-setup to remove persistent state (database, node modules, localsettings). Afterwards, nix run .#services-full will recreate a default development environment on startup.

Contributing

We'd love to see contributions! PRs solving existing issues are most helpful to us. It's best if you ask to be assigned for the issue so we won't have multiple people working on the same issue. Feel free to open issues for bugs, setup problems, or feature requests. If you have other questions, feel free to contact the organization members. You should probably branch off main, the branch release is used for stable revisions.

Before committing, run the following commands:

  • ./manage.py test (runs the test suite)
  • ./manage.py lint (runs linting)
  • ./manage.py format (applies automatic code formatting)

or, to combine all three, simply run ./manage.py precommit.

You can also set up pylint, isort, black and prettier in your IDE to avoid doing this manually all the time.

Creating a Pull Request (Workflow Suggestion)

  1. (once) Fork the repository so you have a GitHub repo that you have write access to.

  2. (once) Set up some authentication for GitHub that allows push access. A common option is using SSH keys, the remaining instructions assume an SSH key setup. An alternative is using the GitHub CLI tool.

  3. (once) Ensure your git remotes are setup to use SSH. To fetch the up-to-date state of the official repo, it's useful to have an "upstream" remote configured:

    git remote set-url origin git@github.com:<your-username>/EvaP.git
    git remote add upstream git@github.com:e-valuation/EvaP.git
    
  4. Create a branch (git switch -c <your-branch-name>), commit your changes (git add and git commit), and push them (git push). "Push" will ask you to specify an upstream branch (git push -u origin <your-branch-name>).

  5. GitHub should now ask you whether you want to open a pull request ("PR"). If the PR solves an issue, use one of GitHub's magic keywords (like "fixes") in the pull request description to create a link between your PR and the issue. If necessary, please also provide a short summary of your changes in the description.

License

MIT, see LICENSE.md.

Supported Browsers

The platform is only tested in Mozilla Firefox and Google Chrome. Other browsers might not render all pages correctly.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evap-2025.6.1.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evap-2025.6.1-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

Details for the file evap-2025.6.1.tar.gz.

File metadata

  • Download URL: evap-2025.6.1.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for evap-2025.6.1.tar.gz
Algorithm Hash digest
SHA256 257b0d5fe1ca315cb0758b4fe1170abdfc4151db96e22f7740cb085dbf8ebbf5
MD5 c11a57f977c4906c7911f6e641f9c388
BLAKE2b-256 44b5d177c9edab8e1d3846f3a55b6797bbe01b3d6f15b8071f668c08fdc8d0a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for evap-2025.6.1.tar.gz:

Publisher: release.yml on e-valuation/EvaP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evap-2025.6.1-py3-none-any.whl.

File metadata

  • Download URL: evap-2025.6.1-py3-none-any.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for evap-2025.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 77336babd9933c081aba6a9363bf177be952719aa27b4a43af14211e3414b55e
MD5 eb4290c3aa65e23053bbd1164be4d51d
BLAKE2b-256 76c43c128b9b460c325bc2fa2367e4c7b0108181986d4eb15439caabbb4f785e

See more details on using hashes here.

Provenance

The following attestation bundles were made for evap-2025.6.1-py3-none-any.whl:

Publisher: release.yml on e-valuation/EvaP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page