From catering inquiry to confirmed booking

CaterFlow connects bilingual, customer-reviewed AI intake to a caterer-prepared quote, customer approval, PayPal sandbox payment verification and a separate caterer booking decision.

Demo update

New 50-second demo. The redesigned intake is a design preview. The $174.55 PayPal Sandbox deposit attempt did not verify in CaterFlow; the $500 confirmed booking is a separate earlier test.

Judge quick start

  1. Try the no-login practice walkthrough. It simulates the workflow; no AI request or payment is sent.
  2. Open the isolated judge workspace. See the judges-only testing instructions. Use fictional data; AI drafting and checkout are disabled here.
  3. As customer, submit a fictional inquiry. As caterer, send a quote. Return as customer to approve it. See the video for the separate PayPal Sandbox demonstration.
  4. Run the core app locally. The default local setup supports intake and quotes; AI and PayPal require separate configuration.

Inspiration

As a catering operator, Franklyn needs detailed event information before he can prepare a useful quote. CaterFlow keeps that request connected to the quote revision, customer approval, payment evidence and separate booking decision. La Bandera Kitchen is the first internal pilot configuration.

What it does

Customers use a detailed English/Spanish intake with optional browser-supported dictation, food-photo inspiration and read-aloud controls. A real-menu link opens separately so the current draft stays available. Amazon Bedrock Claude Sonnet 4.6 suggests structured event facts and one focused follow-up. Customers explicitly accept, edit and review suggestions before submitting.

Photos are uncertain inspiration, not evidence of ingredients, allergens, portions or availability. Dietary concerns require caterer review. AI does not set authoritative prices, move money or confirm bookings.

The caterer prepares a quote. The customer approves that revision before PayPal sandbox checkout. The server checks payment against the approved quote; the caterer separately confirms the booking. Submitted inquiries appear in the caterer workspace. Automatic email/SMS notifications are not enabled.

How we built it

Python and SQLite run through WSGI/Gunicorn behind an HTTPS Nginx proxy on an isolated Ubuntu Lightsail instance. Bedrock drafting uses output validation, customer review and a durable global request cap, including failed attempts. A dated public menu reference provides context without claiming live inventory or pricing.

PayPal Orders v2 sandbox handles order creation/capture and authenticated readback. Recovery preserves request IDs and operator holds rather than blindly repeating uncertain captures. Webhook signature verification and duplicate controls exist, but real signed webhook delivery remains unverified.

Cloudflare Turnstile checks hostname and action on the server. Dedicated proxy request/concurrency limits and durable per-account AI/intake limits add layers of abuse protection. This does not establish immunity to bots or DDoS.

Challenges and learning

We corrected a shell bootstrap mismatch, strict host/origin configuration, interrupted payment recovery and session-expiry handling. Model extraction, deterministic calculation, customer review and operator approval need separate authority. A redirect is not payment evidence, and payment is not a booking.

Verified progress

137 Python tests and 10 JSDOM interface tests passed locally. A selected, overlapping set of 49 tests passed against installed server modules using temporary data and mocks. Hosted missing/invalid verification tokens returned 403, a controlled request burst returned 429, and a synthetic browser request completed automatic verification and reached the normal sign-in check.

One real synthetic food-image request returned a validated review-required model draft; its original response was not retained after a test-harness assertion failed. A subsequent value comparison verified existing workflow records unchanged. Image-recognition quality and native iPhone media acceptance are not established.

An existing synthetic PayPal sandbox workflow includes two inquiries, two approved quotes, one verified payment and one confirmed booking. These are record counts, not commercial traction or conversion rates. No real money moves.

What's next

Finish native-device acceptance, deposit verification and real signed webhook delivery. A deterministic estimate foundation is tested but has no live pricing route. Real estimates require approved menu, cost, tax, fee and margin policies; LBK public pricing remains locked.

Before broader GTM: business-specific branding/menus, tenant isolation, staff roles, notifications and additional payment-provider adapters. Stripe and self-service multi-business SaaS remain future work. No paid CaterFlow subscriptions or measured customer ROI are verified.

Explore the project

Project hub, video, one-pager and illustrative ARR model Hosted synthetic sandbox Public MIT source ยท Working candidate PR

Pilot and revenue hypotheses

Start with owner-operated caterers managing custom quotes across texts, email and spreadsheets. Recruit five design partners and measure quote turnaround, onboarding, support and willingness to pay. Proposed $99 Starter and $199 Team pricing at a 50/50 mix yields $149 per business/month; 100 paying businesses imply $178,800 modeled ARR. No paid subscriptions or retention are verified. Refund/reversal reconciliation, operator hold resolution and business isolation are commercial launch gates.

Built With

Share this project:

Updates

Submission history