Skip to content

e-valuation/EvaP

Repository files navigation

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.

Installation (for Development)

The easiest setup using Vagrant is shown here.

  1. Install git, Vagrant, and one of VirtualBox (recommended) or Docker (for ARM systems).

  2. Run the following commands on the command line to clone the repository, create the Vagrant VM and run the Django development server.

    • If you are familiar with the fork-based open source workflow, create a fork and clone that (using SSH if you prefer that).

    • Windows users: We have observed weird behavior with SSH in Git Bash on Windows and thus recommend using PowerShell instead.

    • To use Docker, replace vagrant up with vagrant up --provider docker && vagrant provision.

    git clone --recurse-submodules https://github.com/e-valuation/EvaP.git
    cd EvaP
    vagrant up
    vagrant ssh

    and, after the last command opened an SSH session in the development machine:

    ./manage.py run
  3. Open your browser at http://localhost:8000/ and login with email evap@institution.example.com and password evap.

That's it!

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.