Wahlzeit: Open Source Software for Photo Rating Sites
PART I: INTRODUCTION
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.
PART II: WAHLZEIT SETUP
Set-up development for Wahlzeit
- 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
Run Wahlzeit on your local machine
- 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
Debug Wahlzeit on your local machine
- Run Wahlzeit on your local machine (see above)
- Create a remote java debug configuration in your IDE with host
localhost
and port8000
(not8080
)
Run Wahlzeit inside a Docker container
- Run
./runInDocker.sh appengineRun
- Or with another Gradle task as argument, e.g.
./runInDocker.sh test
- Open
http://localhost:8080
to try out Wahlzeit inside a Docker container
Deploy Wahlzeit to Google App Engine
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