Skip to content

SoulAuctioneer/notvanillae

Repository files navigation

Not VanillAE

The finest web ingredients, blended into a scrumptious boilerplate for Google App Engine.

Sample websites created with Not VanillAE: SAMA Kitchen, Superhuman Labs, VitalMedicals, NoJack, YourShow

Responsive Client
HTML5 Boilerplate, Twitter Bootstrap, Modernizr, PJAX.js, socialite.js, and sticky footer, seamlessly blended and buttery smooth.

Simpler Server
Webapp2, Jinja2 and Google Service APIs on Python 2.7, all drizzled with home-made decorators and wrappers for lightweight routing, templating and user authentication.

Fast
Liberally sprinkled with smart caching treats, async javascript loading and squished css/javascript to keep your site fast and your GAE costs down.

Who's this for?

Not VanillAE is great for anyone who wants a rapid setup on Google App Engine, using pre-built starter code that merges high-quality boilerplate, frameworks and clever stuff from the community.

This isn't a good fit if:

  • You're not using Google App Engine
  • You're building a large app that would benefit from a full MVC framework such as Django
  • You need a Content Management System (take a look at Django-cms + Google Cloud SQL, or Vosao for Java on GAE)
  • You don't want some random lunatic deciding what is the 'best' tech for your app

What's in it?

Although VanillAE incorporates a lot of great stuff, I haven't just thrown in everything and the kitchen sink. Each component performs a specific useful function that you probably want, and does it better than you (easily) could without it. Each component is used in the starter site bundled with VanillAE. If for some reason you don't want a particular component, it's easy to remove.

Some features provided by other boilerplates are not included. I will be considering these for future versions:

  • User preferences and mangagement outside Google accounts
  • Sessions
  • I18N
  • Unit testing
  • Form validation

If you need these features you can take a look at App Engine Essence or Google App Engine Boilerplate

Installation

Prerequisites

  • Python 2.7. Mac OS X 10.7 Lion users already have Python 2.7 installed.
  • The App Engine SDK for Python. Run the installer if appropriate for your platform, or extract the zip file in a convenient place.

Creating a Google App Engine instance

You'll need to host your app on an instance of Google App Engine:

  1. Go to http://appengine.google.com.
  2. Click Create Application and create a public Google App Engine instance hosted on appspot.com.
  3. Give the application an Application Identifier and select Google Accounts users. You'll need the application identifier later to configure Not VanillAE.

Getting the code

  • The proper way: Clone (or fork and clone) this repository git clone https://github.com/SoulAuctioneer/NotVanillAE.git
  • The easy way: Download the zip and extract it.

Configuring the app

  • Edit app.yaml and change the application value to the Application Identifier you specified on appspot.com.
  • Edit settings.py and change app_title, urls, oauth and google_analytics.

Deploying the app

  • Run the following command from a prompt: appcfg.py update notvanillae/ or click Deploy in Google App Engine Launcher.
  • Enter your Google username and password at the prompts.

You can now see your application running on App Engine. If you set up a free appspot.com domain name, the URL for your website begins with your application ID:

http://your-app-id.appspot.com

Congratulations!

Optional

Not VanillAE uses Grunt to automate css and js minification and concatenation. To install:

  1. Install Node.js
  2. Install the Grunt CLI: npm install -g grunt-cli
  3. Change to the project's root directory.
  4. Install project dependencies with npm install.
  5. Run Grunt with grunt.

Customising your app

  • Add templates to the templates directory, using _template.html for an example.
  • Configure routes in routes.py, using the examples to get started.
  • Add handlers for non-static routes.
  • Decorate your handler methods with @decorators.checks_auth and/or @decorators.sends_response. A @cached decorator is also available.
  • PJAX any internal links by adding a data-pjax attribute to your link tags, i.e. <a href="..." data-pjax>...</a>
  • Add custom CSS to /assets/css/main.css
  • Add custom JavaScript to /assets/js/main.js

To do

Meta

Author: Ash Eldritch @ PajamaNinja http://www.pajamaninja.com/

License: Distributed under the MIT license. All dependencies have their own licenses.

githalytics.com alpha

About

The finest web ingredients, blended into a scrumptious boilerplate for Google App Engine.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published