AppEngine boilerplate with several out of the box goodies:
- html5-boilerplate
- OpenID login with openid-selector
You can see the boilerplate live here.
This project is freely available under the [BSD license] 1, all code included is also covered by the BSD. You can do with it whatever you want!
User authentication with OpenID works out of the box, including a nice user interface with the [openid-selector] 1 jQuery plugin (also used by [stackoverflow] 2).
More infos about appengine and openid:
- http://code.google.com/appengine/articles/openid.html
- http://blog.notdot.net/2010/05/Using-OpenID-authentication-on-App-Engine
[html5 boilerplate] 1 is a great base setup and toolkit for the frontend part of the
project, including a build script which minifies and compresses html, css, javascript and
images. The only modification to the standard html5-boilerplate is adding a
few blocks to /static_dev/index.html
: {% block header|main|scripts|footer %}
html5-boilerplate is located in /static_dev
, and it's build script
outputs an optimized copy to /static_dev/publish
.
During development, /static
is a symlink to /static_dev
, in order to
not having to rebuild for testing every change. Before publishing the project,
run the html5-boilerplate build script and change the reference of /static
to /static_dev/publish
, to upload the optimized version. The upload_to_appengine.sh
script does that automatically for you:
- Asks if it should run the build process with
ant minify
- Changes the /static symlink to the production version
- Waits for you to test and confirm
- Uploads the app to appengine
- Reverts /static to the development environment
This would be the manual steps:
# go into html5-boilerplate's build directory
$ cd static_dev/build
# run ant, which compiles an optimized version into static_dev/publish
$ ant minidy
# go back into the main directory
$ cd ../../
# change reference of /static symlink to optimized version
$ rm static
$ ln -s static_dev/publish static
# Test the optimized version
# Publish to web with appcfg.py
# After publishing you can change back to static_dev
$ rm static
$ ln -s static_dev static