Aplicacion para gestionar listas de compra colaborativas con:
- autenticacion por email/OAuth
- catalogo de productos con historial de precios
- comparticion de listas en tiempo real
- auditoria de actividad preparada para analitica futura
Cesta++ resuelve 3 cosas:
- Organizar compras por listas y productos.
- Colaborar entre varios usuarios en una misma lista.
- Guardar trazabilidad de cambios (auditoria) para explotar datos despues.
- El usuario se registra/inicia sesion.
- Crea listas en
/dashboard. - Entra en una lista (
/dashboard/[id]) y agrega productos/cantidades. - Los cambios se sincronizan por Realtime (
list:*,user:*:lists). - Los cambios de negocio disparan eventos de auditoria en DB.
/landing/sign-inlogin/sign-upregistro + verificacion por codigo/dashboardlistas propias/compartidas/dashboard/[id]detalle de lista colaborativa/productscatalogo de productos + historial de precios/invite/[token]aceptacion de invitaciones/dashboard/profileperfil de usuario
- Next.js
16.2.3(App Router) - React
19.2.4 @insforge/sdkpara auth, database y realtime- Tailwind CSS
4
shopping_listsshopping_list_itemsproductsprice_historylist_shareslist_invite_links
- usuarios en
auth.users(no enpublic)
public.user_activity_events(particionada por mes)public.user_activity_events_enriched(vista para analitica)
Detalle tecnico completo:
Crea .env.local:
NEXT_PUBLIC_INSFORGE_URL=https://<tu-app>.insforge.app
NEXT_PUBLIC_INSFORGE_ANON_KEY=<tu-anon-key>Opcionales recomendadas para redirects absolutos de auth:
NEXT_PUBLIC_APP_URL=http://localhost:3000
# o
NEXT_PUBLIC_SITE_URL=http://localhost:3000- Instalar dependencias:
pnpm install- Levantar en desarrollo:
pnpm dev- Abrir:
http://localhost:3000
pnpm devdesarrollopnpm buildbuild produccionpnpm startejecutar buildpnpm lintlint del proyecto
Scripts disponibles en sql/:
list-sharing-realtime.sqlsetup principal de comparticion + realtime + auditoria basefix-products-rls.sqlhardening de RLS en productos/preciosimprove-activity-audit.sqlmejora de auditoria (particiones, indices, mantenimiento)
Ejemplo de ejecucion:
pnpm dlx @insforge/cli db query -- "$(cat sql/list-sharing-realtime.sql)"
pnpm dlx @insforge/cli db query -- "$(cat sql/fix-products-rls.sql)"
pnpm dlx @insforge/cli db query -- "$(cat sql/improve-activity-audit.sql)"La app publica y escucha eventos para refrescar vistas de listas:
- canal de lista:
list:<listId> - canal de panel:
user:<userId>:lists
Esto permite que cambios de un usuario se reflejen en otros clientes conectados.
redirectToen auth debe ser URL absoluta.- La auditoria actualmente no borra historico automaticamente (retencion desactivada).
- Si falta una particion mensual de auditoria, existe particion
defaultcomo fallback.