/EvaP

a university course evaluation system written in Python using Django

Primary LanguagePythonOtherNOASSERTION

EvaP - Evaluation Platform

Build Status Requirements 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

The easiest setup using Vagrant and VirtualBox is shown here. For manual installation instructions and production deployment please see the wiki page on installation.

  1. Install git, Vagrant and VirtualBox

  2. Fork the Evap repository (using the Fork-button in the upper right corner on GitHub)

  3. Windows users only (might not apply for the linux subsystem):

    • Line endings: git's core.autocrlf setting has to be false or input so git does not convert line endings on checkout, because the code will be used in a linux VM. We suggest using this command in Git Bash:

      git config --global core.autocrlf input
    • Symlink Privileges: Our setup script for the VM creates symlinks in the repository folder. This requires either explicitly allowing your user account to create symlinks or simply running the commands in step 3 as administrator. Thus, we suggest doing step 3 in a Git Bash that was started using "Run as administrator". Generally, this is only required for the first time executing vagrant up.

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

git clone --recurse-submodules https://github.com/<your_github_username>/EvaP.git
cd EvaP
vagrant up
vagrant ssh
./manage.py run
  1. 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, feel free to fork! You should probably branch off master, 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 the linter)
  • ./manage.py format (applies automatic code formatting on Python files)

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

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

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.