Pinax Starter Projects

The pinax/pinax-starter-projects repo is available here.

Many starter projects are derivatives of other projects (zero is the parent of account among many others). We leverage git and branching to manage the hierarchy. Each project template lives in it's own branch and branches from its natural parent.

All starter projects share a common method for getting started. It involves creating a virtual environment, installing Django, and running the startproject command with a URL to the template, followed by a few commands within your new project. Or even easier, you can use the pinax command line utility.

Getting Started

Refer to the Pinax Starter Project Quick Start guide for simple steps to get started.

Using the pinax command line utility

Since you've already installed pinax-cli as described in the Quick Start guide, you can experiment with the pinax command:

pinax projects  # list available project releases
pinax start <kind> <project_name>

If you are feeling adventurous you can install from the latest development branch by passing the --dev flag:

pinax start --dev <kind> <project_name>

For the Pinax documents, wiki, team-wiki, and social-auth starter projects, using the --dev option is the only way to create a project because these do not yet have official releases. This is indicated by a lack of version number next to the project:

$ pinax projects
Release Project
------- ---------------
  4.0.2 account
  4.0.2 blog
  2.0.2 company
        documents
        social-auth
  4.0.2 static
  4.0.2 stripe
        team-wiki
  3.0.2 waitinglist
        wiki
  4.0.2 zero

Starter Project Inheritance

Starter Project List

Pinax-Project-Zero

This project lays the foundation for all other Pinax starter projects. It provides the project directory layout and Bootstrap-based theme.

pinax start zero mysite

Pinax-Project-Account

In addition to what is provided by the "zero" project, this project provides thorough integration with django-user-accounts, adding comprehensive account management functionality. It is a foundation suitable for most sites that have user accounts.

pinax start account mysite

Pinax-Project-SocialAuth

In addition to what is provided by the "account" project, this project integrates with python-social-auth for Twitter, Facebook, and Google authentication.

pinax start --dev social-auth mysite

Pinax-Project-Blog

This project gets you off and running with a blog.

pinax start blog mysite

Pinax-Project-Static

The purpose of this starter project is to provide a robust mocking and design tool.

pinax start static mysite

Pinax-Project-Documents

Builds on the Accounts starter project to get you off and running with a document library built around pinax-documents.

pinax start documents mysite

Pinax-Project-Wiki

This project is a demo starter project that provides a wiki for authenticated users.

pinax start wiki mysite

Pinax-Project-Team-Wiki

This project is a starter project that has account management with profiles and teams and basic collaborative content.

pinax start team-wiki mysite

Additional starter projects:

  • pinax-project-social
  • pinax-project-waitinglist
  • pinax-project-symposion
  • pinax-project-lms
  • pinax-project-forums
  • pinax-project-teams

Starter Project Development

If you want to develop your own starter projects here is the workflow you should follow:

  1. Start with the branch you want to base your new project on.
  2. git co -b <name>
  3. Do the work on your project template
  4. Test your project template by running django-admin.py startproject --template=pinax-starter-projects test1 -n webpack.config.js -n PROJECT_README.md
  5. Once you are satisified with your testing, commit.
  6. git co master and then update this README.md file with details about your new project
  7. Update all descendent branches:
./update.sh
git push