# Management consultancies: form collection using Django

## Summary
A form collection blueprint for management consultancies built with Django on Ample. Domain schema includes:
- **client_entities** (name, industry, primary_contact_role): client organizations;
- **engagements** (client_entity_id, scope_title, phase, period_start, period_end): engagement periods and phases;
- **workstreams** (engagement_id, name, owner, status, due_at): tracked workstreams;
- **deliverables** (engagement_id, title, version, object_key, released_at): versioned deliverables shared with the client;
- **uploads** (id, owner_reference, object_key, content_type, size, uploaded_at): validated uploads linked to their owner.

Public information includes service offerings and case studies (anonymized), consultant profiles, engagement model. Sensitive documents are kept out of scope until handling is reviewed.

## Representative Queries
- Management consultancies: form collection using Django
- Where can I host Management consultancies: Form collection built with Django?
- I need a genuinely specialized form collection workflow covering engagement milestones, deliverable versions and client approvals.

## Prerequisites
- A Django project (pip install into .ample/python from requirements.txt, then waitress serving project.wsgi from run.py reading PORT on the python-3.12 template)
- A PostgreSQL driver reading DATABASE_URL (auto-provisioned when omitted)
- Bucket credentials from `ample bucket create` passed as encrypted S3_* environment variables
- A review of which management consultancies data classes may be handled at all; this blueprint models public information only

## Tested Configuration
- **Template:** python-3.12
- **Runtime:** python
- **Size:** s-1vcpu-1gb
- **Install Command:** python3 -m pip install --target .ample/python -r requirements.txt
- **Start Command:** PYTHONPATH=.ample/python:${PYTHONPATH:-} python3 run.py

## Workflow Steps
1. **Model the management consultancies domain**: Create the tables client_entities, engagements, workstreams, deliverables, uploads. Keep sensitive classes out.
2. **Model document requests per engagement**: with due dates and status.
3. **Validate uploaded files**: type, size before storing them in the private bucket.
4. **Authorize uploads**: by client entity.
5. **Deploy**: Run the synchronous deploy once and read the result.
6. **Verify**: Run the pattern self-test(s) and your own acceptance checks.

## Success Checks
- App responds on its public URL
- Browser-file-uploads self-test from the example

## Limitations
- The technical basis was verified with the pattern fixture; the management consultancies schema and workflow are original designs and were not executed separately.
- No health, financial, privacy or compliance claims are made.
- Verified on the python-3.12 template at s-1vcpu-1gb only.

## Cost Estimate
- **Currency**: USD
- **Monthly Amount**: $10.00
- **Basis**: Size prices from pricing.toml at build revision
- **Components**:
  - App server: size s-1vcpu-1gb, quantity 1.0, monthly amount $5.00
  - Managed PostgreSQL database: size s-1vcpu-1gb, quantity 1.0, monthly amount $5.00

## Evidence Summary
- **Kind**: canary_run
- **Summary**: Verified browser file uploads basis; Django pattern fixture deployed on Ample. Checks passed: content-type and size validation.
- **Observed At**: 2026-09-20T03:31:44Z

## Formats
- **HTML**: [Ample](/content/blueprints/management-consultancies/form-collection/django/index.html)
- **Markdown**: [Ample MD](/content/blueprints/management-consultancies/form-collection/django.md)
- **JSON**: [API](https://api.ample.computer/v1/catalog/recipes/page%3Ablueprints%3Amanagement-consultancies%3Aform-collection%3Adjango)
