There is my intended workflow for project creation:

  1. User requests a new project at http://beaversource.oregonstate.edu/request/
  2. New project is added to the database as 'Requested'
    1. Email with details and approval link is sent to code-admin list
    2. A code admin clicks the approval link
      1. Request app verifies that user visiting the link is a staff member
      2. Project status set to 'A'
  3. @next cron: Cache_and_sync.py scans the db for any approved projects that don't have both a trac instance and svn instance
  4. Cache_and_sync.py executes bs-admin.py with the parameters from the db for that project
  5. Project is created with
    • Specified trac visibility
    • Chosen license as LICENSE in its SVN repo
    • Chosen license as wiki/License in project's trac wiki
    • Main page with svn checkout instructions, project description, and link to wiki license page
  6. As part of its duties, cache_and_sync.py also checks for all projects that are:
    • Non-public (osu-only or members-only) and produces apache miniconfigs
    • Members-only and creates an authz file that makes the projects readable to only their members