The banquet menu (18 dishes) and extras/supplies/delivery items (16) in the training catalog were seeded with photo:'', which the catalog tiles render as a plain red placeholder square. Sourced a real photo for each item (mostly Pexels, free license, picked and visually reviewed one by one to avoid mismatches -- several first search hits were wrong: a live chicken for "chicken caesar salad", a person in frame, branded bottles/cups) and two AI-generated (banquet-caprese, banquet-roastbeef). Converted to square 1024x1024 WebP with sharp. Wires the paths through the actual source of truth: ops/demo/trial- banquet-data.mjs and trial-extras-data.mjs now set photo to the real path, then ops/demo/build-trial-*.mjs regenerated public/demo/*.json and the matching Supabase seed-function migrations, so the client's static JSON fetch and the server-side company-provisioning function stay in sync. Bumped the demo-catalog fetch's own cache-busting query string in training-catalog.js (and its script-tag/precache version), since it's fetched by the client with a separate version from the outer script tags -- the same stale-cache class of bug fixed earlier this session. Verified: all 34 referenced files resolve (200) and decode as real 1024x1024 images; confirmed via the actual rendered catalog tiles (#tiles img[src]) that the extras category -- where the user's red-square screenshot was taken -- now serves the real photo paths. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| docs | ||
| ops | ||
| public | ||
| supabase | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| deploy-trigger.txt | ||
| GITHUB-CLOUDFLARE-SETUP.txt | ||
| package-lock.json | ||
| package.json | ||
| PUSH-TO-GITHUB.bat | ||
| README.md | ||
| TIMEWEB-APP-PLATFORM.md | ||
| UPDATE-FROM-REMOTE-AND-PUSH.bat | ||
| wrangler.jsonc | ||
Caterium
Caterium catering SaaS frontend with Supabase backend.
Production
Primary production URL: https://app.caterium.ru
Production frontend is hosted on Timeweb Cloud App Platform:
- repository:
pavlov346346-source/caterium-app - branch:
production - publish directory:
public - auto deploy: enabled for
production
main is the integration branch. GitHub Actions runs the full Caterium QA workflow for each push to main. Only a successful QA run may promote the verified commit to production.
The Cloudflare Worker ancient-sound-04ab is retained only as a fallback. It is not the primary production target and must not replace the Timeweb deployment unless an intentional fallback procedure is being used.
Deploy checks
npm ci
npm audit --audit-level=high
npm run check:deploy
npm run test:e2e
The QA workflow performs these checks automatically. High/critical npm audit findings block promotion.
Cloudflare fallback
Use Cloudflare only as a backup deployment target. Manual fallback deployment is available as:
npm run deploy:cloudflare-backup
When configuring Git-based Cloudflare fallback deployment, use the verified production branch rather than main so the fallback receives the same QA-approved commit as Timeweb.
Backend
Supabase Edge Functions are versioned under supabase/functions/.
SQL migration/history files live under ops/sql/.
Database DDL changes should be applied as migrations and kept in repository history.
See TIMEWEB-APP-PLATFORM.md for the production hosting checklist.