Skip to content
This repository has been archived by the owner. It is now read-only.
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Coverage Status Codacy Badge Code Climate Issue Count Dependency Status Dependency Status Stories in Ready Issue Stats Issue Stats Join the chat at Docker Image Layers

Sports Competition Management Software with a modern and fast architecture. Java based backend with a RESTful JSON API and a HTML 5 client with a modern UI.

Copyright (C) 2015, 2016 Marcus Fihlon

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see

Running SportChef

Using Docker

The SportChef docker image is available on DockerHub. To run SportChef, you have to specify a port mapping to map the ports of the application server inside the container (8080) to a port on your machine (e.g. 80) and you have to specify a folder on your machine to store the permanent data. The complete docker call looks like this:

docker run -p [local port]:8080 -v [local data path]:/root/.sportchef -it mcpringle/sportchef


docker run -p 80:8080 -v /home/mcpringle/.sportchef:/root/.sportchef -it mcpringle/sportchef

Release Notes

Version 1.1.1

  • Bugfix for infrequent NullPointerException after creating a new event

Version 1.1

  • Default images are assigned to events without an image
  • The imprint now opens in a dialog instead of a separate page
  • Started with integration builds
  • Added a lot of automated tests
  • Measure the test coverage
  • Static code analysis to increase code quality
  • Fixed a lot of small bugs
  • Increased code quality

Version 1.0

  • List all events on one page
  • Use persistence framework (no database)
  • Add imprint page
  • New administration page
  • Custom configuration file
  • Resize event images on upload
  • Calculate background color of events based on the event image



The saver is base on Java EE technology and provides high-performance, RESTful web services. Everything is tied together using a Maven build.


For the client we decided wo go with HTML5 and Google Polymer.


We'll use GitHub Pages for hosting our upcoming project website. We only need static content, so we decided to go with Hugo, a fast and modern static website engine. Our content will be written in Markdown syntax.


We use a Maven build to tie everything together. As a result this project is IDE independent (every state-of-the-art IDE should be able to import and/or use a Maven project). VersionEye is used to track out of date dependencies. To track our reaction time on issues and pull requests we use Issue Stats.

How to contribute to SportChef


A huge thank you to all the contributors! All contributors are listed below (sorted alphabetically by GitHub username):

If you are a contributor and you are missing on this list, please add your entry yourself and create a pull request or create an issue.


Version Planned Release Date Status
v1.0 End of January 2016 released
v1.1 End of February 2016 released
v1.2 End of May 2016 work in progress
v1.3 2016/Q3 planning


Throughput Graph

Overview of issues

We use for a really useful overview of our issues. Our issues can have one of five states. The states are:

Status Explanation
Backlog All open issues not ready to be worked on.
Ready All open issues ready to be worked on.
In Progress All issues, somebody is working on.
In Review Implementation is finished but should be reviewed or is waiting as a pull request.
Done Issues closed in the last week.

If you would like to contribute to SportChef, please choose an issue from the Ready column and add a comment, so that we know what issue you choosed and we're able to update the status of the issue.

If you prefer an issue which is not yet ready and listed in the Backlog, please add a comment before starting to work on it, so we can discuss the issue beforehand and take it to the Ready state.

If there is an issue already In Progress and you would like to help, please add a comment to the issue to get in contact with the assigned developer.

Source code management

GIT Workflow Rules

We use the GitFlow workflow for SportChef. You can read a really good explanation of GitFlow on the Blog of Vincent Driessen: A successful Git branching model

GitFlow Workflow Visualization by Seibert Media

Important: If you start to work on a new feature, please start on the develop branch!

Keep your fork in sync

If you fork this repository, GitHub will not keep your fork in sync with this repository. You have to do it on your own.

  1. If not already done, add this repository as an upstream to your repository:
    git remote add upstream
  2. Verify that this repository was added successfully:
    git remote -v
  3. Fetch branches and commits from this repository to your local repository:
    git fetch upstream
  4. If you are not on your local develop branch, check it out:
    git checkout develop
  5. Merge the changes from this repositories develop branch into your repository):
    git merge upstream/develop
  6. Push your updated repository to your GitHub fork:
    git push origin develop

If you want to merge changes from a different branch (e.g. master, release, etc), simply replace the branch name develop in the above command line examples with the branch name, you want to merge.

Frequently Asked Questions

  1. When I try to push, I get a non-fast-forward updates were rejected error.
    Your local copy of a repository is out of sync with, or behind the upstream repository, you are pushing to. You must retrieve the upstream changes, before you are able to push your local changes.