# Property Management: Vendor Portal Using Django

## Summary  
A vendor portal blueprint for property management built with Django on Ample.  
Domain schema:  
- **Listings**: rental listings with publishing status;  
- **Agencies**: management offices;  
- **Maintenance Vendors**: vendors per office;  
- **Reports**: portfolio reports per office;  
- **Document Access**: who may read which document.

**Public Information**:  available rentals, office contacts, application process.  Kept out of scope until handling is reviewed: tenant identity and payment history, inspection reports with personal data.  Tenant data is personal and often regulated; only published listings and office-scoped reporting are modeled.

**Technical Basis**: verified on Django with 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  
- Property management: vendor portal using Django  
- Where can I host Property management: Vendor portal built with Django?  
- I need a genuinely specialized vendor portal workflow covering building/vendor access, maintenance status, and property reporting.

## Resource Requirements  
- **Compute**  
- **Postgres**  
- **S3-compatible object storage**

## Infrastructure Requirements  
- **Compute**: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.  
- **Postgres**: Managed PostgreSQL 16 runs in its own microVM and is auto-provisioned when an app needs a database and no DATABASE_URL is supplied.  
- **S3-compatible Object Storage**: Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary. Other S3 operations are not verified.

## Workflow Steps  
1. **Model the property management domain**: Create the tables listings, agencies, maintenance_vendors, reports, document_access. Rental listings with publishing status lives in listings; keep sensitive classes (tenant identity and payment history, inspection reports with personal data) out of this schema.  
2. **Model vendors** scoped to the agency with roles.  
3. **Authorize document access** by vendor and role (401, 403 negative tests).  
4. **Store vendor documents** in the private bucket.  
5. **Deploy and verify** the negative tests and an authorized download.  
6. **Run the synchronous deploy** once and read the result. Re-running with no change is a no-op.

## Examples  
- **Django Pattern Fixture**: Verified private document library basis for this blueprint.

## Limitations  
- The technical basis (private document library on Django) was verified with the pattern fixture; the property management schema and workflow are an original design for this blueprint and were not executed as a separate application.  
- No health, financial, privacy or other compliance claim is made.  
- Verified on the python-3.12 template at s-1vcpu-1gb; region, request-duration limits and other sizes are unknown or unverified.

## Cost Estimate  
- **Currency**: USD  
- **Monthly Amount**: 10.0  
- **Basis**: size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty  
- **Components**:  
  - App server: s-1vcpu-1gb, 1.0, $5.0  
  - Managed PostgreSQL database: s-1vcpu-1gb, 1.0, $5.0

## Next Actions  
- **Browse the catalog index**  
- **Search published recipes** by intent, stack and constraints  
- **Prepare a side-effect-free deployment plan** for an authorized project  
- **Read the existing agent authentication setup**  
- **Browse Property management**  
- **Browse Vendor portal**  
- **Browse Django**  
- **Browse Deploy web app**

## Evidence Summary  
- **Canary Run**: Django pattern fixture deployed on Ample; the private document library checks passed.
