Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An app for managing a ping pong league. Python/Django based, Google App Engine-deployable.
Python JavaScript Shell
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
images Merged Yoni's changes with my own.
stylesheets Profile updates and adding avatar to the players page.
templates Updates to Player page:
templatetags Update default gravatar image.
README Moved TODOs into the "dones". Basic implementation of Ratings Percentage Index-based rankings, whic…
app.yaml V3.
cron.yaml Added a cron job that updates RPI once a day.
index.yaml Fix sorting of completed games so that the recent ones come first.



An app for managing the OPOWER Ping Pong league. Currently, the app
* Viewing the rules
* Getting the latest info on league tournaments. Specifically, the Cinco de Mustache
  OPONGER tournament where 8 players will contend for the OPONGER title and some
  ridiculous prizes.
* Updating profile info: location (SF or DC) and pseudonym
* Creating a new game
* Viewing all "available" games, i.e. games you can join
* Viewing all "active" games, i.e. games people are playing, but have not been completed
* Viewing all players
* Joining a game
* Canceling a game
* Game result updating
* Viewing all completed games
* Viewing games by player
* Basic player stats
* Ranking
* Admin site with a couple of features
* Email when someone joins your game
* Batch rank calculations
* ELO Ranking System
* RPI (Rating Percentage Index) ranking system as an alternative to ELO

Planned features
* Ability to "challenge" another player

Live app URLs

The app is a basic Google App Engine Python application. For more info, check out

Source Repository
To check out oponger with git:
    git clone /path/to/oponger

This will set the github repo as the "origin". To push your local changes from the "master" branch:
    git push origin master

To push the app to Google App Engine: update /path/to/oponger

Running The App Locally
To run the app, you'll need to download and install Google App Engine Python SDK from:

Once you've installed it, you can run it from the command line, using: /path/to/oponger

Or, you can fire it up using the handy dandy GoogleAppEngineLauncher, which provides handy links to the
dashboard, logs, and more.

Working With IntelliJ
Once you've got the project checked out and Google App Engine Python SDK installed,
you can work with the project through IntelliJ.

* Install the Python Plugin
* Create a New Project
** Choose New Project, Python Module
** + to configure Python SDK
** Select your version of Python. On a Mac, this will be under System/Library/Frameworks/Versions/2.6/python
** Under "Please select the desired technologies", Select Google App Engine
** If asked for the Google App Engine SDK, under OSX that should be in

Backing up production data
Using Google App Engine's bulk data loader, the following script downloads all data into a timestamped CSV file:

To run a unit test:
    cd test
    python <test_name>
Something went wrong with that request. Please try again.