FloCafe
FloCafe는 구독 없이 무료로 주문·테이블·주방 디스플레이·로컬 데이터를 관리하는 로컬 퍼스트 레스토랑 POS입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Swapit es la herramienta del intermediario regional (acopiador, agregador de residuos y subproductos), no un marketplace: digitaliza cómo capta material de su red de proveedores (portal por enlace y bot de WhatsApp), le dice si el precio que ofrece es justo (benchmark por subtipo de material) y le deja certificar la trazabilidad a sus clientes (certificados co-marcados con QR y hash). Cobro: suscripción mensual + fee por certificado; sin comisión por operación. Foco: Piura y Lambayeque.
Dos experiencias (22 oct. 2026). Tras la mentoría #6, la demo por defecto (
pnpm demo) es el intercambio entre empresas: catálogo con fotos y detalle del material (mapa como vista secundaria), oferta de precio dentro de la plataforma, contacto solo al llegar a un acuerdo, vista dual ofertante/demandante e impacto. Menú de 4 opciones; sin asistente de IA ni WhatsApp en el menú. La herramienta para acopiadores (red de proveedores, precio justo, acuerdos de temporada, destinos, certificados) sigue disponible conpnpm demo:b2b. Diseño nuevo: docs/diseno/. Publicar en un dominio público: docs/despliegue.md.Modos comprador y vendedor (27 oct. 2026). El marketplace (
pnpm demo) sigue la estructura de docs/diseno/estructura-web.md: inicio con frase y dos botones, ingreso y registro por modo, marketplace con Lista/Mapa y buscador, «Publicar» con pin en el mapa y menú de bolita (Perfil, Mis compras, Favoritos, Chats · Perfil, Mis productos, Finanzas, Chats). Una cuenta activa el segundo modo desde su Perfil.
Pivote (15 oct. 2026): el producto anterior (marketplace de personas y empresas con chat, pago en garantía y créditos) sigue en el código detrás de un interruptor. Por qué y qué queda: docs/decisiones/0001-pivote-b2b2b.md. El nombre se mantiene: Swapit.
Diseño ejecutivo y despliegue (23 oct. 2026). La interfaz es un panel sobrio (azul marino de estructura, verde de acción, Inter, tablas y franja de indicadores; sin pictogramas decorativos). Pantallas del plan de trabajo en docs/plan/: Inicio, Explorar, Ficha, Publicar en 3 pasos, Mi actividad (Propuesta → Aceptada → Cerrada), Mi empresa e Impacto. Seguridad: docs/seguridad.md (cabeceras, CORS, CSRF, límites de tasa, validación de imágenes, webhook firmado, verificación manual de empresas). Despliegue en Vercel + Supabase: docs/despliegue.md;
pnpm humoprueba la API de punta a punta. 282 pruebas de API en verde. Pagos, SUNAT y fotos de las ofertas de demo son simulados y se marcan «Demo».
Monorepo pnpm: apps/api (NestJS + Prisma), apps/web (Next.js + Tailwind + MapLibre), packages/shared (Zod, enums, benchmark, agente).
Requisitos: Node.js 22 o superior y pnpm 9 (con Node instalado: corepack enable). Necesita internet para el mapa (teselas de OpenFreeMap). No requiere Docker, base de datos ni claves.
git clone https://github.com/davidblas5000/swap-it.git # repositorio privado: pide acceso a David
cd swap-it
pnpm install
pnpm demo # intercambio entre empresas: BD embebida + migraciones + datos de demo + API + web
pnpm demo:b2b # Swapit para acopiadores (intermediarios)
Abre http://localhost:3000 (la primera vez tarda 1-2 minutos en compilar y sembrar). Ctrl+C lo detiene. pnpm demo:reset recrea los datos de demostración y muestra en consola los enlaces del portal de captación de algunos proveedores.
Cuentas de demo (botones en /login, contraseña demo1234; todos los datos son ficticios):
[email protected] — Acopios Tallanes: red de 6 proveedores, material en todos los estados, suscripción activa y 2 certificados emitidos.[email protected] — Reciclajes del Norte: otra red, aislada de la primera, sin suscripción (no puede emitir certificados)./captacion/<enlace>, pensado para el celular): reporta «bidones de PEAD azules, 600 kg, a S/ 4,50» → la IA sugiere el subtipo, ve el rango de referencia y que su precio está encima./verificar/<código> es público).En la carpeta del proyecto hay tres archivos que se abren con doble clic:
iniciar-swapit.bat: enciende todo y abre http://localhost:3000 en el navegador. Aparece una ventana negra: déjala abierta mientras uses la app.detener-swapit.bat: apaga Swapit. También se apaga al cerrar la ventana negra (o con Ctrl+C dentro de ella).reiniciar-datos-swapit.bat: borra lo que hayas probado y vuelve a crear los datos de demostración (pide confirmación).| Real (probado) | Simulado / modo demo |
|---|---|
| PostgreSQL con PostGIS (distancias) y pgvector (similitud de precios) | Base embebida PGlite en desarrollo; en producción Neon/Supabase con el mismo esquema |
| Roles intermediario/generador, aislamiento entre redes, ciclo reportado → cotizado → acopiado → despachado | Cobros: proveedor mock (suscripción y fee por certificado; Culqi/Niubiz pendientes) |
| Certificados verificables (QR + SHA-256) co-marcados, PDF, portal de captación por token con límite de tasa | KYB/SUNAT: mock determinista (RUC con «00» en las posiciones 9-10 = dado de baja) |
| Benchmark por similitud (pgvector + PostGIS + volumen + recencia), importación CSV, consentimiento para compartir | Precios de referencia de la demo: DATOS DE EJEMPLO (semilla sintética, rotulada en pantalla); no son precios de mercado |
| Webhook de WhatsApp con verificación de reto y firma, conversación guiada | WhatsApp: el envío es un mock; la integración real está en docs/whatsapp-roadmap.md |
IA: sin ANTHROPIC_API_KEY el clasificador es local por palabras clave; sin OPENAI_API_KEY, embeddings por hashing |
Para activar la IA real crea apps/api/.env con ANTHROPIC_API_KEY=… y/o OPENAI_API_KEY=…. ⚠️ Si activas OpenAI, ejecuta pnpm demo:reset para reindexar: no se pueden mezclar embeddings de proveedores distintos.
Empresa.rol = INTERMEDIARIO es la cuenta que se suscribe y paga. GENERADOR es un proveedor de su red: lo crea el intermediario, no tiene usuario y reporta por enlace (tokenCaptacion) o por WhatsApp; su RUC es opcional (hay proveedores informales).Lote es el material reportado por un proveedor; pertenece a la red de su intermediario. Ciclo: REPORTADO → COTIZADO → ACOPIADO → DESPACHADO (o RECHAZADO).PLASTICO_PET/PEAD/PP/FILM/PVC/MIXTO (familia PLASTICO); si la IA no distingue el polímero, pide revisión.packages/shared/src/benchmark.ts (pesos: material 45 %, cercanía 20 %, volumen 20 %, recencia 15 %). Otros subtipos de la familia solo se usan de respaldo; con ≥ 5 precios reales del subtipo, los datos de ejemplo dejan de usarse.transaccionId o loteId de origen; el hash cubre generador, intermediario emisor y cliente destino; los certificados del marketplace siguen verificando. Exige suscripción activa y registra un fee.SWAPIT_ACOPIADORESSWAPIT_ACOPIADORES=1 (con pnpm demo:b2b) | Intermediarios, proveedores, benchmark, certificados co-marcados, portal y WhatsApp. Lo del marketplace responde 404. |
Sin la variable (por defecto del código y de pnpm demo): marketplace comprador/vendedor | Intercambio entre empresas: personas y empresas, transacciones con chat y pago en garantía, créditos, búsqueda y alertas, modo confidencial, cumplimiento REP. pnpm demo:marketplace (o :reset). |
Las pruebas del modo anterior están en apps/api/test/marketplace/ y fijan el modo; se borrarán junto con ese código (criterio en la decisión 0001).
packages/shared/src/agente/: mini-ADK en TypeScript (agente con herramientas tipadas, sub-agentes, bucle con sesión). Usa Gemini Nano por la API Prompt de Chrome con salida JSON restringida y, si no está disponible o falla, un modelo de reglas. El del intermediario solo consulta (benchmark, material por cotizar, estado de la red): no tiene herramientas que cambien datos. Requisitos de Nano y límites: docs/investigacion-y-mejoras.md. ⚠️ Las pruebas usan un Nano simulado; Nano real no se verificó en este entorno.
pnpm demo / pnpm demo:reset | Prototipo de intercambio entre empresas (modo MARKETPLACE) con 33 ofertas ilustradas |
pnpm demo:b2b / pnpm demo:b2b:reset | Swapit para acopiadores (modo B2B2B) |
pnpm --filter @swapit/api test | 160 pruebas contra un Postgres real en memoria (PostGIS + pgvector), de los dos modos |
pnpm typecheck / pnpm build | Verificación de tipos / compilación |
Para producción: crear la BD en Neon (CREATE EXTENSION postgis; CREATE EXTENSION vector;), poner DATABASE_URL en apps/api/.env y ejecutar pnpm --filter @swapit/api prisma:deploy. La conexión ?pgbouncer=true&connection_limit=1 del .env de desarrollo es solo para la base embebida (una sola sesión).
ConfigPlataforma, packages/shared/src/factores-co2.ts). Presentarlos como estimaciones.NEXT_PUBLIC_MAPBOX_TOKEN usa Mapbox. Las teselas gratuitas no son para tráfico de producción.demo1234)[email protected], [email protected], [email protected], [email protected], [email protected] (confidencial).[email protected], [email protected], [email protected], [email protected].apps/api/src/seed/imagenes-demo.ts); se reemplazan por fotos reales cuando las empresas suban las suyas. Todos los datos son ficticios.