page:blueprints:photography studios:documentation site:django

Photography studios: documentation site using Django

A documentation site blueprint for photography studios built with Django on Ample.
Domain schema:

Public information includes: session packages and pricing from, consented portfolio galleries, studio locations.
Kept out of scope until handling is reviewed: client galleries before release, minors in photographs, payment details. Client galleries are private until released with consent; only consented portfolio media is public.

Technical basis verified on Django: a workspace-scoped table, an explicit state machine (draft to review to published) that rejects invalid transitions, and a cross-workspace read that returns nothing (transitions=true isolation=true).

Representative Queries:

Resource Requirements:

Infrastructure Requirements:

Workflow Steps

  1. Model the photography studios domain
    Create the tables listings, agencies, galleries, reports, state_transitions. Session packages with publishing status lives in listings; keep the sensitive classes (client galleries before release, minors in photographs, payment details) out of this schema.
  2. Workflow step 1
    Model versioned documents with a state machine (draft, review, published) scoped to a product version
  3. Workflow step 2
    Publish assets for released versions to the CDN bucket
  4. Workflow step 3
    Serve only published versions publicly
  5. Workflow step 4
    Deploy and verify the version list and a published page
  6. Deploy
    Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
    ample deploy . --name  --public --start "python3 run.py" --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=... --env CDN_PUBLIC_URL=...  
    
  7. Verify
    Run the pattern self-test(s) from the example (/p/relational-records) and your own acceptance checks for the photography studios workflow.
    ample logs  --kind build  
    

Limitations

Cost Estimate