Plataforma moderna y completa para conectar pequeñas y medianas empresas (PYMEs) chilenas con clientes potenciales. Incluye sistema de donaciones, chat en tiempo real, bot IA 24/7, analytics completo y más.
- KPIs en Tiempo Real - Vistas, ratings, donaciones, mensajes
- Gráficos Interactivos - Recharts con líneas, barras y tortas
- Multi-PYME - Gestión de múltiples negocios
- Historial Completo - Reviews y donaciones recientes
- Métricas de Engagement - Análisis de comportamiento
- CRUD Completo - Crear, editar y eliminar negocios
- Galería de Fotos - Hasta 5 imágenes con Supabase Storage
- Videos YouTube - Integración de video embebido
- Horarios de Atención - Configuración personalizada
- 9 Métodos de Pago - Tradicionales y criptomonedas
- Configuración Delivery - Zonas y costos de envío
- SEO Optimizado - Meta title, description, keywords
- Calificaciones 1-5 - Sistema de estrellas visual
- Solo Autenticados - Reviews verificadas
- Anti-Spam con IA - Validación automática
- Recálculo Automático - Ratings promedio actualizados
- Sistema de Flagging - Reportar contenido
- Stripe, PayPal, MercadoPago - Métodos tradicionales
- Bitcoin, Solana, Dogecoin - Criptomonedas
- Montos Predefinidos - $1.000, $5.000, $10.000, $50.000 CLP
- Montos Personalizados - Cantidad libre
- Modal Responsive - Animaciones fluidas
- Supabase Realtime - Mensajería instantánea
- Bot IA 24/7 - OpenAI GPT-4 integrado
- Anti-Spam - Filtros automáticos
- UI Moderna - Burbujas estilo WhatsApp
- Respuestas Contextuales - Bot con memoria
- Sitemap Dinámico - sitemap.xml automático
- Robots.txt - Configurado para crawlers
- Open Graph - Meta tags para redes sociales
- Schema.org - Rich snippets
- Búsqueda Avanzada - Filtros por texto, categoría, ciudad
- 12 Categorías - Clasificación de negocios
- 13 Ciudades - Principales ciudades chilenas
- Next.js 15 - Framework React con App Router
- TypeScript - Tipado estático
- Tailwind CSS - Estilos utility-first
- Framer Motion - Animaciones
- Recharts - Gráficos y visualizaciones
- Sonner - Notificaciones toast
- Lucide React - Iconografía
- Supabase - Base de datos PostgreSQL
- Supabase Auth - Autenticación (Email, OAuth Twitter/X)
- Supabase Storage - Almacenamiento de imágenes
- Supabase Realtime - WebSockets para chat
- OpenAI API - Inteligencia artificial (GPT-4)
- Anti-spam Library - Protección contra spam
- Tradicionales: Stripe, PayPal, MercadoPago
- Criptomonedas: Bitcoin, Solana, Dogecoin
- OAuth: Twitter/X
- Sistema de auth con Supabase
- OAuth2 con X (Twitter)
- Login/Signup con email/password
- Middleware de protección de rutas
- KPIs: vistas, donaciones, ratings, mensajes
- Gráficos con Recharts (Line, Bar, Pie)
- Reviews y donaciones recientes
- Selector de múltiples PYMEs
- Crear y editar PYMEs
- Subida de múltiples imágenes
- Video de YouTube embebido
- Horarios de atención
- 9 métodos de pago
- Delivery configurable
- SEO completo (meta title, description, keywords)
- Calificación 1-5 estrellas
- Solo usuarios autenticados
- Recalculo automático de ratings
- Sistema de flagging
- 6 métodos de pago (3 tradicionales + 3 crypto)
- Montos predefinidos y personalizados
- Registro completo en BD
- Modal responsive
- Supabase Realtime
- Bot IA 24/7 con OpenAI GPT-4
- Anti-spam integrado
- UI moderna con burbujas
- Schema completo en PostgreSQL (Supabase)
- Tablas: profiles, pymes, reviews, donations, chat_messages, pyme_analytics
- Row Level Security (RLS)
- Triggers y funciones automáticas
- Índices optimizados
- Texto, categoría, ciudad
- 12 categorías
- 13 ciudades de Chile
- Grid responsive
- Sitemap.xml dinámico
- Robots.txt
- Meta tags por página
- Open Graph
- Navbar responsive con autenticación
- Footer informativo
- Landing page con animaciones
- Componentes UI base (Button, Input, Card, Badge, etc.)
- Diseño responsive mobile-first
- Framer Motion para animaciones
/api/pymes(GET, POST)/api/pymes/[id](GET, PATCH, DELETE)/api/reviews(GET, POST)/api/donations(GET, POST)/api/chat(GET, POST)/api/bot(POST)/api/analytics(GET)/api/upload(POST)
- Sistema anti-spam con IA
- Moderación de contenido con OpenAI
- Helpers de formato (fecha, moneda)
- Validaciones
- Node.js 18+ instalado
- npm, yarn, pnpm o bun
- Cuenta en Supabase (gratis)
- (Opcional) API key de OpenAI para el bot IA
# Clonar el repositorio
git clone <repo-url>
cd frutify
# Instalar dependencias
npm installCrea un archivo .env.local en la raíz del proyecto:
# Supabase (REQUERIDO)
NEXT_PUBLIC_SUPABASE_URL=https://tu-proyecto.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=tu-anon-key
SUPABASE_SERVICE_ROLE_KEY=tu-service-role-key
# OpenAI (para bot IA)
OPENAI_API_KEY=sk-tu-api-key
# Site Configuration
NEXT_PUBLIC_SITE_URL=http://localhost:3000
# OAuth Twitter/X (opcional)
X_CLIENT_ID=tu-twitter-client-id
X_CLIENT_SECRET=tu-twitter-client-secret
# Pagos (opcional para testing)
STRIPE_SECRET_KEY=sk_test_...
PAYPAL_CLIENT_ID=...
MERCADOPAGO_ACCESS_TOKEN=...
BITCOIN_WALLET_ADDRESS=...
SOLANA_WALLET_ADDRESS=...
DOGECOIN_WALLET_ADDRESS=...# Instalar Supabase CLI
npm install -g supabase
# Login en Supabase
supabase login
# Vincular al proyecto
supabase link --project-ref tu-project-ref
# Ejecutar migraciones
supabase db push- Ve a tu proyecto en Supabase
- Navega a SQL Editor
- Copia y ejecuta el contenido de
supabase/migrations/001_initial_schema.sql - Copia y ejecuta el contenido de
supabase/migrations/002_storage_setup.sql
En Supabase Dashboard → Storage:
- Verifica que el bucket
imagesexiste - Debe tener política pública para lectura
- Ve a developer.twitter.com
- Crea una aplicación y obtén Client ID y Secret
- En Supabase: Authentication → Providers → Twitter
- Habilita y configura con tus credenciales
npm run dev
# o
yarn dev
# o
pnpm dev
# o
bun devAbre http://localhost:3000 en tu navegador.
npm run build
npm startfrutify/
├── app/
│ ├── api/ # API Routes
│ │ ├── analytics/ # Métricas y analytics
│ │ ├── bot/ # Chatbot IA
│ │ ├── chat/ # Mensajes de chat
│ │ ├── donations/ # Donaciones
│ │ ├── pymes/ # CRUD de PYMEs
│ │ ├── reviews/ # Ratings y comentarios
│ │ └── upload/ # Subida de imágenes
│ ├── auth/ # Autenticación
│ ├── chat/[pymeId]/ # Chat en tiempo real
│ ├── dashboard/ # Dashboard de métricas
│ ├── pyme/ # Gestión de PYMEs
│ │ ├── [id]/ # Vista detallada de PYME
│ │ ├── [id]/edit/ # Editar PYME
│ │ └── create/ # Crear nueva PYME
│ ├── search/ # Búsqueda de PYMEs
│ ├── globals.css # Estilos globales
│ ├── layout.tsx # Layout principal
│ ├── page.tsx # Landing page
│ ├── robots.ts # Robots.txt dinámico
│ └── sitemap.ts # Sitemap XML dinámico
├── components/
│ ├── ui/ # Componentes UI base
│ ├── chat-client.tsx # Cliente de chat
│ ├── dashboard-client.tsx # Cliente del dashboard
│ ├── donation-modal.tsx # Modal de donaciones
│ ├── header.tsx # Navegación principal
│ ├── footer.tsx # Footer
│ └── pyme-*.tsx # Componentes de PYME
├── lib/
│ ├── supabase/
│ │ ├── client.ts # Cliente de Supabase (browser)
│ │ └── server.ts # Servidor de Supabase (SSR)
│ ├── openai.ts # Cliente de OpenAI
│ ├── anti-spam.ts # Sistema anti-spam
│ └── utils.ts # Utilidades (formato, validación)
├── supabase/migrations/ # Migraciones de BD
│ ├── 001_initial_schema.sql
│ └── 002_storage_setup.sql
├── types/
│ └── index.ts # Tipos y constantes TypeScript
├── middleware.ts # Middleware de autenticación
└── .env.local # Variables de entorno
- Perfiles de usuarios vinculados a Supabase Auth
- Campos:
id,email,full_name,avatar_url
- Información completa de las PYMEs
- Datos básicos:
name,description,category - Ubicación:
city,address,lat,lng - Contacto:
phone,email,website, redes sociales - Configuración:
business_hours,payment_methods,delivery_options - SEO:
meta_title,meta_description,keywords - Multimedia:
photos(array),youtube_video_url - Métricas:
views,average_rating
- Calificaciones y comentarios
- Campos:
pyme_id,user_id,rating(1-5),comment,flagged
- Registro de donaciones
- Campos:
pyme_id,donor_id,amount,payment_method,status,transaction_metadata
- Sistema de mensajería en tiempo real
- Soporte para bot IA
- Eventos de analytics
- Campos:
pyme_id,event_type,metadata
- ✅ Row Level Security (RLS) habilitado
- ✅ Políticas de Acceso específicas
- ✅ Triggers Automáticos para actualizar ratings
- ✅ Índices Optimizados para búsquedas rápidas
# Conectar con Vercel
vercel
# O conectar repositorio en vercel.com- Conecta tu repositorio en vercel.com
- Configura las variables de entorno en Settings → Environment Variables
- Deploy automático en cada push a
main
Ver DEPLOYMENT.md para más detalles.
QUICKSTART.md- Guía de inicio rápido paso a pasoAPI_DOCS.md- Documentación completa de APIsSUPABASE_SETUP.md- Configuración detallada de SupabaseDEPLOYMENT.md- Guías de deploymentIMPLEMENTATION_GUIDE.md- Guía de implementación
Solución: Verifica que NEXT_PUBLIC_SUPABASE_URL en .env.local sea una URL válida (https://...)
rm -rf .next
npm run buildSolución: Verifica que Supabase Realtime esté habilitado en tu proyecto
Solución: Verifica que el bucket images existe y tiene políticas públicas
- ✅ Autenticación completa
- ✅ CRUD de PYMEs
- ✅ Dashboard de métricas
- ✅ Sistema de reviews
- ✅ Sistema de donaciones
- ✅ Chat en tiempo real
- ✅ Bot IA 24/7
- ✅ SEO optimizado
- Sistema de notificaciones push
- Marketplace con productos
- Sistema de reservas/citas
- App móvil (React Native)
- Sistema de afiliados
- Integración con redes sociales
- Analytics avanzado con ML
- Multi-idioma
Las contribuciones son bienvenidas:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE para más detalles.
- Supabase por la increíble plataforma BaaS
- Vercel por Next.js y el hosting
- OpenAI por GPT-4
- La comunidad open source por las increíbles herramientas
¿Necesitas ayuda?
- 📧 Email: support@frutify.cl
- 📖 Documentación: Ver archivos
.mden este repositorio - 🐙 Issues: GitHub Issues
Hecho con ❤️ en Chile 🇨🇱
Apoyando a las PYMEs locales con tecnología moderna