# 🌴 Karibeo - Tourism & Business Management Platform [](https://reactjs.org/) [](https://www.typescriptlang.org/) [](https://tailwindcss.com/) [](LICENSE) Karibeo es una plataforma integral de gestión turística y comercial diseñada para conectar turistas con servicios locales mientras proporciona herramientas empresariales avanzadas para hoteles, restaurantes y comercios. ## 🚀 Características Principales ### Para Turistas 🧳 - **Exploración Interactiva**: Descubre destinos, lugares y experiencias únicas - **Reservas Integradas**: Sistema completo de reservas para hoteles, restaurantes y tours - **Geolocalización Avanzada**: Encuentra servicios cercanos con mapas interactivos - **Billetera Digital**: Gestión de pagos y transacciones seguras - **Reseñas y Valoraciones**: Sistema completo de reviews y puntuaciones - **Asistente IA**: Asistente flotante con inteligencia artificial para ayuda personalizada ### Para Negocios 💼 #### 🏨 Gestión Hotelera - Sistema de reservas y check-in/check-out - Gestión de habitaciones e inventario - Room service y amenidades - Control de acceso sin llaves (keyless entry) - Gestión de personal y turnos #### 🍽️ Sistema POS Restaurante - Terminal de punto de venta completa - Gestión de pedidos y cocina - Sistema de mesas y reservaciones - Gestión de menú dinámico - Control de inventario - Facturación y cuentas #### 🏪 Gestión de Comercio - Tienda virtual integrada - Terminal POS para ventas - Gestión de inventario y productos - Control de clientes y fidelización - Sistema de caja y reportes - Gestión de personal ### Panel de Administración 👨💼 - **Dashboard Ejecutivo**: Métricas en tiempo real y KPIs - **Gestión de Usuarios**: Control completo de usuarios y perfiles - **Sistema de Roles y Permisos**: Gestión granular por entidad (Admin, Hotel, Restaurante, Comercio) - **CRM Integrado**: Gestión de contactos, campañas y analytics - **Channel Manager**: Sincronización multi-canal (Booking, Airbnb, Expedia) - **Sistema de Comisiones**: Reglas automatizadas y tracking - **Configuración Global**: APIs, pagos, integraciones - **Security Center**: Monitoreo y auditoría de seguridad - **Analytics Avanzado**: Reportes y visualización de datos ### Módulos Especiales 🌟 - **POLITUR**: Sistema de emergencias y seguridad turística - **Guías Turísticos**: Creación y gestión de itinerarios personalizados - **Sostenibilidad**: Tracking de impacto ambiental y certificaciones - **Gestión de Vehículos**: Control de flotas y mantenimiento ## 🛠️ Stack Tecnológico ### Frontend - **Framework**: React 18.3.1 + TypeScript - **Build Tool**: Vite 6.2.0 - **Styling**: Tailwind CSS + shadcn/ui components - **State Management**: React Context + TanStack Query - **Routing**: React Router DOM 7.8.2 - **Forms**: React Hook Form + Zod validation - **Maps**: Google Maps API - **Charts**: Recharts + ApexCharts ### Dependencias Clave ```json { "@tanstack/react-query": "^5.83.0", "@googlemaps/js-api-loader": "^1.16.10", "react-hook-form": "^7.61.1", "zod": "^3.25.76", "recharts": "^3.1.2", "lucide-react": "^0.462.0" } ``` ## 📁 Estructura del Proyecto ``` karibeo/ ├── src/ │ ├── components/ # Componentes reutilizables │ │ ├── admin/ # Componentes de administración │ │ ├── hotel/ # Componentes hoteleros │ │ ├── restaurant/ # Componentes de restaurante │ │ ├── roles/ # Sistema de roles │ │ ├── security/ # Componentes de seguridad │ │ └── ui/ # Componentes UI base (shadcn) │ ├── contexts/ # React Contexts │ │ ├── AuthContext.tsx │ │ ├── CartContext.tsx │ │ └── CurrencyContext.tsx │ ├── hooks/ # Custom React Hooks │ │ ├── useAdminData.ts │ │ ├── useBooking.ts │ │ └── useRolesPermissions.ts │ ├── pages/ # Páginas/Rutas │ │ ├── dashboard/ # Panel de control │ │ ├── SignIn.tsx │ │ └── SignUp.tsx │ ├── services/ # Servicios API │ │ ├── adminApi.ts │ │ ├── emergencyApi.ts │ │ └── paymentService.ts │ ├── types/ # Definiciones TypeScript │ ├── lib/ # Utilidades │ │ ├── utils.ts │ │ └── validation.ts # Schemas de validación Zod │ ├── i18n/ # Internacionalización │ └── App.tsx # Componente principal ├── public/ # Assets estáticos ├── tailwind.config.ts # Configuración Tailwind ├── tsconfig.json # Configuración TypeScript └── vite.config.ts # Configuración Vite ``` ## 🚦 Instalación y Configuración ### Prerrequisitos - Node.js 18+ (recomendado usar [nvm](https://github.com/nvm-sh/nvm)) - npm o yarn ### Instalación Local ```bash # 1. Clonar el repositorio git clone https://github.com/tu-usuario/karibeo.git cd karibeo # 2. Instalar dependencias npm install # 3. Configurar variables de entorno # Crear archivo .env en la raíz (ver sección de Configuración) # 4. Iniciar servidor de desarrollo npm run dev # El proyecto estará disponible en http://localhost:5173 ``` ### Scripts Disponibles ```bash npm run dev # Servidor de desarrollo npm run build # Build de producción npm run preview # Preview del build npm run lint # Linting con ESLint ``` ## 🔐 Autenticación y Seguridad ### Sistema de Autenticación - Login mediante email/password con validación robusta - Tokens JWT con refresh token automático - Soporte para OAuth (Google, Apple) - Sesiones persistentes en localStorage ### Validación de Inputs Todos los formularios utilizan **Zod** para validación: ```typescript // Ejemplo de schema de validación const loginSchema = z.object({ email: z.string().email().max(255), password: z.string().min(8).max(128) }); ``` ### Roles y Permisos Sistema granular de permisos por entidad: - **Admin**: Gestión global del sistema - **Hotel**: Permisos específicos para hoteles - **Restaurant**: Permisos para restaurantes - **Commerce**: Permisos para comercios ## 🌍 Internacionalización Soporte multi-idioma con contexto dedicado: - Español (ES) - Por defecto - Inglés (EN) - Fácilmente extensible a más idiomas ```typescript // Uso del contexto de idioma const { t, language, changeLanguage } = useLanguage();