Metadata-Version: 2.4
Name: deliveryday-companion
Version: 0.1.0
Summary: Tesla delivery-day acceptance companion: structured checklist, photos, signed PDF report.
Project-URL: Homepage, https://github.com/Raymondriter/deliveryday-companion
Project-URL: Repository, https://github.com/Raymondriter/deliveryday-companion
Project-URL: Issues, https://github.com/Raymondriter/deliveryday-companion/issues
Author-email: Raymondriter <tenzinshare@gmail.com>
License: MIT
License-File: LICENSE
Keywords: acceptance,checklist,delivery,fastapi,inspection,pdf,tesla
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business
Requires-Python: >=3.12
Requires-Dist: fastapi>=0.115
Requires-Dist: jinja2>=3.1.6
Requires-Dist: python-multipart>=0.0.12
Requires-Dist: reportlab>=4.2
Requires-Dist: sqlmodel>=0.0.22
Requires-Dist: typer>=0.12
Requires-Dist: uvicorn[standard]>=0.32
Provides-Extra: dev
Requires-Dist: httpx>=0.28; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.7; extra == 'dev'
Description-Content-Type: text/markdown

# deliveryday-companion

A Tesla **delivery-day acceptance companion**. Runs in your phone's browser. Works offline. Walks you through a 36-step pre-acceptance inspection (VIN match, paint, panel gaps, every screen feature, every camera, FSD trial, Supercharger handshake, drive feel) with a photo per step, then emits a signed PDF "acceptance report" you can email yourself and your delivery specialist.

## Why now

You get **one shot** at delivery. The MVPA is signed inside an hour, and any defect not captured *in writing* before that signature evaporates into "service appointment" land. Cell coverage at delivery centers is often awful, so the companion is fully offline-first: SQLite-on-disk, no CDN assets, no telemetry, no outbound HTTP from the request handlers.

## 30-second demo

```bash
pip install deliveryday-companion
deliveryday demo
```

Opens at <http://127.0.0.1:8002/> with a sample inspection seeded so you can click around before your VIN arrives.

## Real use

```bash
deliveryday serve --port 8002
# then open the URL on your phone over your laptop hotspot, or run on the phone directly via Pythonista / Termux.
```

1. Start a session, paste your VIN
2. Walk the car category by category (VIN/Match -> Exterior -> Interior -> Functional -> Drive -> Final)
3. Mark each step PASS / NOTE / FAIL, attach a photo where the checklist asks for one
4. Hit "Sign & finalize", download the PDF
5. Email the PDF to yourself and to your delivery specialist *before* you sign the MVPA

## Checklist breakdown

| Category    | Steps |
|-------------|------:|
| VIN/Match   |     5 |
| Exterior    |     8 |
| Interior    |     6 |
| Functional  |    10 |
| Drive       |     4 |
| Final       |     3 |
| **Total**   |    **36** |

The full list lives in [`src/deliveryday_companion/checklist.py`](src/deliveryday_companion/checklist.py) — edit it before delivery to match your trim, paint, and any car-specific things you care about. Run `deliveryday steps` to print it as a table.

## What's in the PDF

- Header: VIN, location, started timestamp, session ID
- Summary table per category (PASS / NOTE / FAIL / pending counts)
- Per-step result with status pill, description, your note, and embedded photo
- Final-page signature block with date line

ReportLab over WeasyPrint specifically so a fresh `uv sync` Just Works on Windows without GTK/cairo runtime DLLs.

## Roadmap to v0.2

- **Offline PWA wrapper** — service-worker manifest so iPhone Safari "Add to Home Screen" gives a real app icon and a fully offline first-launch
- **Photo annotation** — circle-and-arrow drawing on the captured photo for "this exact spot has the chip" precision (canvas-based, no upload)
- **VIN decoder** — paste a VIN, the companion auto-fills trim / paint / interior so the build-config step is a one-tap visual confirm instead of a checklist
- **Compose with hey-nabu's offline scaffold** — share the service worker registration code rather than duplicating it
- **Re-export to JSON** — let `teslakit`'s long-term ownership dashboard import the report as the day-zero baseline

## Stack

Python 3.12+, FastAPI, Jinja2, ReportLab, SQLModel, Typer. No JavaScript framework — vanilla HTML forms, dark-themed CSS lifted from [`sentrytriage`](https://github.com/Raymondriter/sentrytriage). MIT licensed.
