• NudgeNudge

  last modified April 24, 2007 by philikon

NudgeNudge is an application that lets people who've used a certain Python package write reviews for it.

History

At the BBQ Sprint, Philipp von Weitershausen suggested writing an application with Grok to find where it still had some rough spots (both for newbies as well as experts). A group of volunteers ("guinnee pigs") gathered on the first sprint day and brought in suggestions regarding which kind of application the group could write. Chris Calloway and Ian Bicking suggested writing a package review application. Richard Amerman suggested calling it NudgeNudge, after Monty Python's Nudge Nudge sketch.

Goals

  • Support the following user stories:
    • Visitors can sign up become reviewers
    • Reviewers can write reviews of Python packages
    • Visitors can search for reviews
  • Don't store any information that's already in PyPI (basically, store no information about packages, just reviews), though possibly integrate with PyPI using its XMLRPC API where necessary.

Technology

  • NudgeNudge is a Grok application, thus it builds on Zope 3.
  • zc.buildout is used for constructing the sandbox and installing required packages
  • Deliverance is used for theming (currently themed like the CheeseShop)
  • zope.paste and PasteDeploy allow us to do the theming transparently by using Deliverance as a WSGI middleware

Installing

Note that this currently only works on Unix (Linux, Mac, ...) systems:
  1. Check out the project area from SVN:
    $ svn co http://codespeak.net/svn/z3/NudgeNudge/trunk NudgeNudge
  2. Edit buildout.cfg to point to your Zope 3 installation:
    [zope3]
    location = /path/to/Zope-3.3.1
  3. Bootstrap zc.buildout to obtain the buildout script:
    $ python2.4 bootstrap/bootstrap.py
  4. Run the buildout to install required packages (grok, deliverance, paste.deploy, zope.paste, etc.) and create the Zope 3 configuration for NudgeNudge automatically:
    $ bin/buildout
    ...lots of output here...
  5. We are now able start up Zope using the following command:
    $ parts/instance/bin/runzope
    Then we can create a NudgeNudge application object by pointing our webbrowser to http://localhost:8080. Let's call it "nudge".
  6. To run the NudgeNudge application using the PasteDeploy stack and therefore themed using Deliverance, start the server using the following command:

    $ bin/paster serve nudge.ini

    You'll then be able to access the themed application at http://localhost:8080/nudge and unthemed at http://localhost:8080/notheme/nudge.

    Note that the Deliverance middleware requires lxml to do the theming which has produced some problems on Mac OS X before. Your mileage may vary.