Wahlzeit is an open source web application that lets users upload photos and rate photos of other users on a 1..10 scale. Users get to present their best photos and learn what other users thought of theirs.
Wahlzeit is used to teach agile methods and open source software development at the Professorship of Open Source Software at the Friedrich-Alexander-University of Erlangen-Nürnberg.
It is an easy-to-learn yet complete Java web application that is available under the GNU Affero Public License v3 license, see the LICENSE.txt file.
Starting Wahlzeit 2.0, Wahlzeit is a Google App Engine app. It can be run on your local machine or be deployed to Google App Engine for broader availability.
For more information, please see http://github.com/dirkriehle/wahlzeit and http://osr.cs.fau.de.
- Install Java JDK¹ (version 8 or higher)
- Set
JAVA_HOME
- Install
git
- If you don't have one yet, create a GitHub account (required)
- Create your own repository by forking Wahlzeit from dirkriehle to your GitHub-account
- On the command line, create or choose a project directory and go there
- Run
git clone https://github.com/<yourname>/wahlzeit.git
- On the command line,
cd wahlzeit
- Run
./gradlew appengineRun
- Wait until all gradle and project dependencies have been downloaded and the local instance has been started, which could take some minutes
- Open
http://localhost:8080
to try out Wahlzeit on your machine
- Run Wahlzeit on your local machine (see above)
- Create a remote java debug configuration in your IDE with host
localhost
and port8000
(not8080
)
- Build the Docker image
docker-compose build
ordocker build -t wahlzeit .
- Run the Docker container
docker-compose up
ordocker run --network=host -p 8080:8080 wahlzeit
- Open
http://localhost:8080
to try out Wahlzeit inside a Docker container
- Sign in to Travis CI
- Activate the repository
- Add the following environment variables:
DOCKERHUB_USER
andDOCKERHUB_PW
matching your credentials for DockerHub
Every pushed commit on master will publish and overwrite the wahlzeit:latest
image. Every tagged commit will publish and overwrite the wahlzeit:{tag-name}
image.
Create a Google App Engine instance:
- If you don't have one yet, create a Google account (required)
- Go to https://console.developers.google.com and login with your Google account
- In the developers console, select create a project
1. Choose a project name, called below
yourprojectname
. If youryourprojectname
is not unique, a UID will be added:yourprojectname = yourprojectname + <some Google UID>
2. Accept the terms of service, for better or worse
Configure your repository and deploy Wahlzeit
- Configure your project:
1. Open the file
/src/main/webapp/WEB-INF/appengine-web.xml
2. Replace<application>dirkriehle-wahlzeit</application>
with<application>yourprojectname</application>
whereyourprojectname
is your previously chosen project name 3. Save and close theappengine-web.xml
- Run
./gradlew appengineUpdate
- If a browser window pops up and asks for permission, accept it
- Copy the code from the browser window to your gradle console and hit enter
- If everything works out, you will find your project at
https://yourprojectname.appspot.com
Done!
--
¹ Gradle compiles automatically to JDK 1.8, because later versions are not yet supported by Google App Engine Standard Environment