page:blueprints:hospitality:vendor portal:django

Hospitality: Vendor Portal Using Django

Summary

A vendor portal blueprint for hospitality built with Django on Ample. Domain schema:

Public information: room types, amenities and rates from property location and policies, events and dining. Kept out of scope until handling is reviewed: guest identity documents, payment details, stay history. Guest identity documents are sensitive; only availability and booking status are modeled here.

Technical basis verified on Django: a role-to-document access model with negative tests (401 without identity, 403 for the wrong role) and a private-bucket round-trip for the allowed role (private=ok).

Representative Queries

Workflow Steps

  1. Model the hospitality domain
    Create the tables room_types, inventory_movements, bookings, booking_lines, document_access. Room and package catalog lives in room_types; keep the sensitive classes (guest identity documents, payment details, stay history) out of this schema.
  2. Workflow step 1
    Model vendors scoped to the agency with roles
  3. Workflow step 2
    Authorize document access by vendor and role (401, 403 negative tests)
  4. Workflow step 3
    Store vendor documents in the private bucket
  5. Workflow step 4
    Deploy and verify the negative tests and an authorized download
  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=...
    
  7. Verify
    Run the pattern self-test(s) from the example (/p/private-document-library) and your own acceptance checks for the hospitality workflow.
    ample logs --kind build
    

Examples

Cost Estimate

Limitations