World Vibe Web
The distributed app store for vibe-coded projects. Browse, discover, and install open-source apps from across GitHub.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Menu digital responsive inspirado en BioMenus, preparado para trabajar por cuenta.檢視完整 README ↗
Menu digital responsive inspirado en BioMenus, preparado para trabajar por cuenta.
GET /api/accounts/:accountId/menuPOST /api/accounts/:accountId/orders?account=totta, ?account=bruder, ?account=sandras-rose/totta y /brudermock, supabase y sqltemplate, theme, layout, hero, branding y estilo de cardsvideo_url para vista previa/admin para crear cuentas y editar presentacion/video sin SQLnpm install
npm run dev
Esto levanta:
http://127.0.0.1:8787http://127.0.0.1:5173/?account=sandras-rosehttp://127.0.0.1:5173/?account=capta-demohttp://127.0.0.1:5173/?account=tottahttp://127.0.0.1:5173/?account=bruderModo actual recomendado:
.env.example a .envCAPTA_DATA_PROVIDER=supabaseCAPTA_SUPABASE_URLCAPTA_SUPABASE_API_KEY con una key de backend de solo lectura para la APICAPTA_ADMIN_TOKEN para habilitar el panel internoCAPTA_SUPABASE_STORAGE_BUCKET=menu-videos para uploads de previewCAPTA_SUPABASE_STORAGE_API_KEY con una key de backend para StorageCAPTA_SUPABASE_WRITE_API_KEY con una key de backend con permisos de escrituraEl backend lee:
restaurants para resolver la cuenta por slugproducts para traer los productos activos de ese restauranteAgrupa automaticamente por category.
Para pedidos reales, el backend escribe en:
clientespedidositems_pedidocustomer_loyalty_accountscustomer_loyalty_transactionsAsi el pedido aparece en el dashboard de capta y queda historial por cliente usando phone.
El sistema de puntos queda preparado para que la configuracion y administracion se haga desde el dashboard principal de capta, no desde /admin de esta app.
Tablas nuevas:
restaurant_loyalty_settingsrestaurant_loyalty_rewardscustomer_loyalty_accountscustomer_loyalty_transactionsReglas principales:
restaurant_loyalty_settings.enabledrestaurant_id + phonerestaurant_loyalty_rewardsGET /api/accounts/:accountId/loyalty?phone=...Calculo de puntos:
spend_amount_step: cada cuanto dinero gastado se acreditapoints_per_step: cuantos puntos suma ese bloqueminimum_order_total: compra minima para empezar a sumarEjemplo:
spend_amount_step = 1000points_per_step = 1Entonces una compra de $3.500 suma 3 puntos.
Nueva migracion:
Esta app no administra puntos desde /admin; el dashboard de capta debe crear y editar filas en esas tablas.
La API ahora devuelve:
categories: contenido del menupresentation: configuracion visual por cuentaLa presentacion soporta:
template: editorial, bistro, luxelayout: editorial, bistro, luxebranding.wordmarkbranding.subtitlethemehero.imagehero.titlehero.accenthero.descriptioncards.stylepreview.productMediapreview.autoplayVideospreview.mutedVideosEsto permite que cada restaurante tenga una identidad distinta sin duplicar el frontend.
Ahora template define la estructura del menu y theme define el look.
/adminRutas:
http://127.0.0.1:5173/adminhttps://menu-five-red.vercel.app/adminRequiere enviar un token en el header x-admin-token o Authorization: Bearer ....
La UI ya lo hace automaticamente cuando completas el campo Token admin.
Endpoints disponibles:
GET /api/admin/accountsPOST /api/admin/accountsDELETE /api/admin/accounts/:accountIdGET /api/admin/accounts/:accountId/editorPATCH /api/admin/accounts/:accountId/presentationPATCH /api/admin/products/:productId/mediaPOST /api/admin/products/:productId/image-uploadPOST /api/admin/products/:productId/video-uploadCon eso ya puedes:
restaurantsslug una cuenta ya existente de capta sin duplicarlalayout, theme, branding, hero y previewimage_url y video_url por productoBucket recomendado:
menu-videosRequisitos:
.mp4CAPTA_SUPABASE_STORAGE_API_KEY para que el upload salga desde backend y no abrir permisos publicos de escrituraVariables:
CAPTA_SUPABASE_STORAGE_BUCKET=menu-videosCAPTA_SUPABASE_STORAGE_API_KEY=...Flujo en /admin:
Fotos y videos por productoSubir a Storageimage_url o video_url en productsRuta interna usada:
POST /api/admin/products/:productId/video-uploadSe agrego una migracion lista para aplicar:
La migracion crea:
restaurant_menu_presentationsproducts.video_url si todavia no existeSeeds incluidos:
restaurant_menu_presentationsCampos principales:
restaurant_idlayouttheme_idtheme_overrides (jsonb)branding_wordmarkbranding_subtitlehero_image_urlhero_titlehero_accenthero_descriptioncards_stylepreview_modeautoplay_videosmuted_videosproducts.video_urlSi un producto tiene video_url, el frontend ya puede:
video-firstNota:
totta, bruder y sandras-rose ya quedaron cargados en la base real con presentacion propiaQuedaron tres presets listos para usar como base:
premium clarobistro calidonocturno eleganteHoy se resuelven desde:
Y se mezclan con overrides de base desde:
Si en Vercel ves un error como:
Unexpected token '<'is not valid JSONsignifica que estaba publicado solo el frontend y no habia endpoint /api/....
Este repo ahora ya incluye funciones serverless en:
api/health.jsapi/accounts/[accountId]/menu.jsEn Vercel solo necesitas cargar estas variables de entorno y redeploy:
CAPTA_DATA_PROVIDER=supabaseCAPTA_SUPABASE_URL=https://eqnjyygokjinmsfvogxi.supabase.coCAPTA_SUPABASE_API_KEY=...CAPTA_ADMIN_TOKEN=...Alternativa:
CAPTA_DATA_PROVIDER=sql si en el futuro quieres leer directo desde Postgres/MySQL sin pasar por Supabase RESTEl adaptador SQL espera este modelo base:
accounts: id, slug, name, currency, localemenu_categories: id, account_id, slug, name, sort_ordermenu_products: id, account_id, category_id, name, description, price, price_display, image_url, video_url, badge, dietary_tags, is_active, sort_orderLa conexion real a la base de capta queda preparada, pero para enchufarla de verdad todavia hace falta confirmar: