Skip to content

No-Country-simulation/S02-26-Equipo-48--EquineLead

Repository files navigation

01. 🏠 EquineLead – Motor de Crecimiento Basado en Datos para la Industria Ecuestre

📌 Versión 2.1 - Blueprint Técnico Real
Este README es el punto de entrada oficial para el equipo. Refleja la arquitectura confirmada por los Leads de Backend y Data Science.
Nota importante: Solo los scripts de testing están en main. El desarrollo activo ocurre en las ramas feature/.

EquineLead es una plataforma MVP diseñada para ayudar a empresas de la industria ecuestre a identificar, calificar y convertir leads de alto valor utilizando estrategias de crecimiento basadas en datos.

La plataforma se enfoca en transformar visitantes casuales en leads calificados B2C y B2B a través de análisis de sentimiento, scoring de leads, automatización y APIs backend.


🚨 Problema

Las empresas en el nicho ecuestre tienen dificultades para identificar y capturar leads de alto valor.
La industria está altamente fragmentada, lo que hace costoso e ineficiente llegar a:

  • Propietarios individuales (B2C)
  • Gerentes de establos, mayoristas y proveedores de servicios (B2B)

🎯 Objetivo

Construir un MVP de Motor de Crecimiento que convierta tráfico anónimo en leads calificados para productos de alto valor como:

  • Caballos de $50,000 USD
  • Monturas de $2,000 USD
  • Servicios y eventos ecuestres

🧠 Funcionalidades Core del MVP

  • Sistema de captura de leads (formularios, tracking)
  • Análisis de sentimiento y detección de intención
  • Motor de scoring de leads
  • Lógica de embudo automatizada
  • APIs backend
  • Scraping de datos (opcional)
  • Dashboard de analíticas básico
  • Automatización CI/CD

🏗 Arquitectura Detallada

💡 Nota: Esta arquitectura representa el diseño planificado. Algunos componentes están en desarrollo.

graph TB
    subgraph "Capa de Cliente"
        WEB[Dashboard Web<br/>React + Node.js 18]
        MOBILE[App Móvil<br/>Android Kotlin]
        LANDING[Landing Page<br/>Formularios de Captura]
    end

    subgraph "Servicios Backend MVP"
        BACKEND[API Backend<br/>.NET 8.0<br/>Entrada + Lógica de Negocio]
        ML[Servicio ML<br/>Python 3.12.3<br/>FastAPI]
        SCRAPPER[Servicio Scrapper<br/>Rust 1.75.0<br/>Recolección de Datos]
    end

    subgraph "Capa de Datos"
        DB[(PostgreSQL<br/>Base de Datos Principal)]
        CACHE[(Redis<br/>Capa de Caché)]
    end

    subgraph "CI/CD"
        JENKINS[Jenkins<br/>Instancia OCI]
        DOCKER[Docker Registry]
    end

    WEB --> BACKEND
    MOBILE --> BACKEND
    LANDING --> BACKEND

    SCRAPPER --> BACKEND

    BACKEND --> ML
    ML --> BACKEND

    BACKEND --> DB
    BACKEND --> CACHE

    JENKINS --> DOCKER
    DOCKER --> BACKEND
    DOCKER --> ML
    DOCKER --> SCRAPPER

    style WEB fill:#4CAF50,stroke:#2E7D32,color:#fff
    style MOBILE fill:#4CAF50,stroke:#2E7D32,color:#fff
    style BACKEND fill:#2196F3,stroke:#1565C0,color:#fff
    style ML fill:#FF9800,stroke:#E65100,color:#fff
    style SCRAPPER fill:#9C27B0,stroke:#6A1B9A,color:#fff
    style DB fill:#F44336,stroke:#C62828,color:#fff
    style JENKINS fill:#607D8B,stroke:#37474F,color:#fff
Loading

Componentes de Arquitectura (MVP)

💡 Nota: Para el MVP, el API Backend absorbe el rol de puerta de entrada (API Gateway). No existe un Gateway separado.

Capa de Cliente

  • Dashboard Web: Interfaz de analíticas basada en React — Ronald
  • App Móvil (Android): App para agentes CRM y supervisores — Franklin
  • Landing Page: Formularios de captura de leads

Servicios Backend

  • API Backend (.NET 8.0): Punto de entrada único + lógica de negocio. Recibe leads del scrapper, llama al servicio ML para scoring y persiste resultados en DB — Junior
  • Servicio ML (Python 3.12.3 / FastAPI): Calcula el score del lead y devuelve clasificación (Cold/Warm/Hot) al Backend — Leandro + David Alejandro
  • Scrapper (Rust 1.75.0): Extrae leads de fuentes públicas y los envía al API Backend — Jorge

Capa de Datos

  • PostgresSQL 15: Base de datos principal. C# es el único dueño de la persistencia.
    • Nota técnica: Se utiliza un Volumen de Docker (postgres_data) para asegurar que los datos persistan en el disco duro del servidor (AWS o Local) incluso si el contenedor se recrea.

Filosofía de Desacoplamiento (Data Ownership)

Para evitar el patrón de "Monolito Distribuido", el sistema sigue estas reglas:

  1. Single Source of Truth: Solo el Backend C# tiene credenciales y acceso a la base de datos.
  2. Stateless Brain: El servicio de Data Science (Python) no guarda ni lee de la base de datos. Recibe datos vía JSON, calcula el score y devuelve el resultado.
  3. Persistencia Centralizada: El Backend C# es el encargado de recibir la respuesta de Python y persistirla en Postgres.

CI/CD

  • Jenkins: Testing automático y validación de PRs — Diego
  • Docker: Containerización de todos los servicios 💡

🛠 Stack Tecnológico Completo

✅ = Verificado desde configuraciones de testing
💡 = Sugerido basado en mejores prácticas

⚠️ Tecnologías Pendientes de Confirmación:
Las tecnologías marcadas con 💡 son propuestas técnicas que el equipo aún no ha confirmado oficialmente. Estas representan un primer vistazo de la arquitectura planificada.

Backend

  • Runtime: .NET 8.0 ✅ (SDK 8.0.407)
  • Framework: ASP.NET Core 8.0 💡 (pendiente de confirmación)
  • ORM: Entity Framework Core 8.0 💡 (pendiente de confirmación)
  • Documentación API: Swagger/OpenAPI 💡 (pendiente de confirmación)
  • Testing: xUnit 2.4.2 ✅

Data Science / Machine Learning

  • Runtime: Python 3.12.3 ✅
  • Framework API: FastAPI ✅
  • Modelo de Scoring: Basado en Reglas (Rule-Based) ✅ (Lógica: I + B + T - P)
  • Análisis de Sentimiento: BERT (Integración planeada) 💡
  • Testing: pytest 7.4+ ✅

Scrapper / Servicios de Alto Rendimiento

  • Lenguaje: Rust 1.75.0 ✅ (Edition 2021)
  • Runtime Async: tokio 💡 (pendiente de confirmación)
  • Cliente HTTP: reqwest 💡 (pendiente de confirmación)
  • Parsing HTML: scraper 💡 (pendiente de confirmación)
  • Testing: Framework de testing integrado de Rust ✅

Frontend Web

  • Runtime: Node.js 20.x (LTS) ✅
  • Framework: React 18.2+ 💡 (pendiente de confirmación)
  • Gestión de Estado: Redux Toolkit 💡 (pendiente de confirmación)
  • Librería UI: Material-UI (MUI) 5.0+ 💡 (pendiente de confirmación)
  • Build Tool: Vite 4.0+ 💡 (pendiente de confirmación)
  • Testing: Jest 29.5.0 ✅ + React Testing Library 14.0.0 ✅

Móvil

  • iOS: Swift 5.9+ 💡 (SwiftUI) (pendiente de confirmación)
  • Android: Kotlin 1.9+ 💡 (Jetpack Compose) (pendiente de confirmación)
  • Testing: XCTest (iOS), JUnit (Android) 💡 (pendiente de confirmación)

Base de Datos & Caché

  • Base de Datos Principal: PostgreSQL 15+ ✅ (Esquema v2 Confirmado)
  • Caché: Redis 7.0+ 💡 (Visión Futura — Fase 3. No implementado. No necesario para el MVP. Evaluar cuando supere 1.000 requests/min concurrentes)
  • Cola de Mensajes: RabbitMQ 3.12+ 💡 (Visión Futura — Fase 3. No implementado. Necesario recién cuando el Scrapper Rust procese miles de leads/hora. La instancia t3.small de 2GB no soporta este servicio adicional)

DevOps & Infraestructura

  • CI/CD: Jenkins ✅ (Java 21, IP: 129.151.114.218 en OCI)
  • App Server: AWS t3.small ✅ (2GB RAM + 4GB Swap, IP: 44.202.43.214)
  • Memoria Virtual: Swap File 4GB ✅ (configurado en el App Server AWS)
  • Containerización: Docker + Docker Compose ✅ (instalado en App Server)
  • Orquestación: docker-compose.yml (raíz del proyecto) ✅
  • IaC: Terraform ✅ (en uso activo — OCI para Jenkins, AWS para App Server)
  • Nube:
    • OCI (Jenkins) ✅
    • AWS us-east-1 (App Server Plan B) ✅

Herramientas de Desarrollo

  • Control de Versiones: Git + GitHub
  • Calidad de Código: ESLint, Prettier (Frontend), dotnet format (Backend)
  • Testing de API: Postman, Thunder Client

🗄️ Esquema de Base de Datos

💡 Nota: Este esquema representa el diseño planificado de la base de datos. La implementación está en desarrollo.

Base de Datos Principal: PostgreSQL 15+ ✅ (Esquema v2 Confirmado)

erDiagram
    Leads ||--o{ LeadInteractions : registra
    Leads ||--|| LeadScores : posee
    
    Leads {
        INT id PK
        VARCHAR email
        VARCHAR name
        TIMESTAMP_TZ created_at
    }
    
    LeadInteractions {
        INT id PK
        INT lead_id FK
        INT interaction_type_id
        JSONB metadata
        TIMESTAMP_TZ interaction_date
    }
    
    LeadScores {
        INT id PK
        INT lead_id FK
        INT score_value
        INT classification_id
        TIMESTAMP_TZ updated_at
    }
Loading

Tablas Principales

Tabla Propósito Campos Clave
Leads Almacenar leads capturados email, name, status, created_at
InteractionTypes Catálogo maestro de tipos de interacción id, description (INT mapping)
LeadInteractions Historial completo de actividad del lead lead_id, type_id, metadata, interaction_date
LeadScoreClassifications Catálogo maestro de estados (1-Cold, 2-Warm, 3-Hot) id, description
LeadScores Almacenamiento del scoring vigente por lead lead_id, value, classification_id

Clasificación de Leads (Maestro)

Valor INT Clasificación Significado
1 Cold Bajo interés inicial / Inactivo
2 Warm Interés moderado / Nutrición
3 Hot Alta intención de compra / Urgente

📖 Diccionario de Datos: docs/database/especificacion-tecnica-db-v2.md


🔌 Endpoints de API

💡 Nota: Estos endpoints representan el diseño de API planificado. La implementación está en desarrollo.

API Backend (ASP.NET Core 8.0)

URL Base (App Server): http://44.202.43.214:8000 (AWS Plan B activo — Ver Terraform outputs)

URL Base (Local): http://localhost:5286

Gestión de Leads inmediata

POST   /api/users              # Recibir nuevo lead desde el scrapper
GET    /api/leads              # Listar leads con score (paginado)

Pendientes de implementar luego

GET    /api/leads/{id}         # Obtener lead por id
PUT    /api/leads/{id}         # Actualizar lead
DELETE /api/leads/{id}         # Eliminar lead

💡 Nota: Endpoints en definición por Junior (Contrato 2 pendiente). Ver: docs/meetings/2026-02-19-flujo-pipeline-narrado.md

Ejemplo de Request:

POST /api/leads
{
  "email": "cliente@example.com",
  "phone": "+1234567890",
  "name": "Juan Pérez",
  "source": "landing_page",
  "metadata": {
    "interest": "horse_purchase",
    "budget": "50000"
  }
}

Ejemplo de Response:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "email": "cliente@example.com",
  "status": "new",
  "created_at": "2026-02-12T06:30:00Z",
  "score": null
}

Lead Scoring

POST   /api/leads/{id}/score   # Calcular score de lead
GET    /api/leads/{id}/score   # Obtener score actual

Ejemplo de Response:

{
  "lead_id": "550e8400-e29b-41d4-a716-446655440000",
  "score": 87,
  "category": "hot",
  "confidence": 0.92,
  "features": {
    "engagement_score": 85,
    "budget_match": 95,
    "intent_score": 82
  }
}

API de Servicio ML (Python FastAPI)

URL Base (App Server): http://44.202.43.214:8090 (AWS Plan B activo)

URL Base (Local): http://localhost:8090

Análisis de Sentimiento

POST   /api/sentiment/analyze  # Analizar sentimiento de texto

Ejemplo de Request:

POST /api/sentiment/analyze
{
  "text": "Estoy muy interesado en comprar un caballo de alto rendimiento",
  "language": "es"
}

Ejemplo de Response:

{
  "sentiment": "positive",
  "score": 0.89,
  "confidence": 0.94,
  "model": "bert-base-spanish-wwm-cased"
}

Predicción de Lead Scoring

POST   /api/leads/predict      # Predecir score de lead

Ejemplo de Request:

POST /api/leads/predict
{
  "features": {
    "page_views": 15,
    "time_on_site": 420,
    "interactions": 5,
    "budget_range": "50000-100000",
    "sentiment_avg": 0.85
  }
}

Ejemplo de Response:

{
  "predicted_score": 87,
  "category": "hot",
  "probability": {
    "hot": 0.87,
    "warm": 0.11,
    "cold": 0.02
  }
}

📖 Contrato Técnico Scoring: docs/data-contracts/contrato-json-scoring-v1.md


🔐 Seguridad

💡 Nota: Esta configuración de seguridad representa las mejores prácticas planificadas. La implementación está en desarrollo.

Autenticación & Autorización (pendiente de confirmación)

Autenticación de API

  • Método: JWT (JSON Web Tokens)
  • Expiración de Token: 1 hora (access token), 7 días (refresh token)
  • Header: Authorization: Bearer <token>

Ejemplo:

GET /api/leads
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Apps Móviles

  • iOS/Android: OAuth 2.0 con PKCE
  • Biométrico: Face ID / Touch ID / Fingerprint

Protección de Datos

Encriptación

  • En Tránsito: TLS 1.3 (HTTPS)
  • En Reposo: Encriptación transparente de datos PostgreSQL
  • Campos Sensibles: Encriptación AES-256 para PII

Gestión de Secrets

  • Desarrollo Local: Archivos .env (¡nunca commitear!)
  • Producción: Oracle Cloud Secrets Manager
  • CI/CD: Almacén de credenciales de Jenkins

Mejores Prácticas de Seguridad

  • ✅ Rate limiting en todos los endpoints de API
  • ✅ Validación y sanitización de inputs
  • ✅ Prevención de inyección SQL (queries parametrizadas)
  • ✅ Protección XSS
  • ✅ Configuración CORS
  • ✅ Auditorías de seguridad regulares

⚙️ Variables de Entorno

💡 Nota: Estas configuraciones representan el setup planificado. Los valores específicos se definirán durante la implementación.

Backend (.NET 8.0)

Crear archivo .env en src/backend-csharp/:

# Base de Datos
DATABASE_URL=postgresql://user:password@localhost:5432/equinelead
DATABASE_POOL_SIZE=20

# Caché Redis
REDIS_URL=redis://localhost:6379
REDIS_TTL=3600

# Autenticación JWT
JWT_SECRET=your-super-secret-key-change-in-production
JWT_ISSUER=equinelead-api
JWT_AUDIENCE=equinelead-clients
JWT_EXPIRY_MINUTES=60

# Servicios Externos
ML_SERVICE_URL=http://localhost:8090
SCRAPPER_SERVICE_URL=http://localhost:8081

# RabbitMQ
RABBITMQ_URL=amqp://guest:guest@localhost:5672

# Logging
LOG_LEVEL=Information
SENTRY_DSN=https://your-sentry-dsn@sentry.io/project

Servicio ML (Python 3.12.3)

Crear archivo .env en src/data-science/:

# Base de Datos
DATABASE_URL=postgresql://user:password@localhost:5432/equinelead

# Caché Redis
REDIS_URL=redis://localhost:6379

# Modelos ML
MODEL_PATH=/models
SENTIMENT_MODEL=bert-base-spanish-wwm-cased
SCORING_MODEL=lead_scoring_rf_v1.pkl

# Configuración API
API_HOST=0.0.0.0
API_PORT=8090
API_WORKERS=4

# Logging
LOG_LEVEL=INFO

Scrapper (Rust 1.75.0)

Crear archivo .env en src/scrapper-rust/:

# Base de Datos
DATABASE_URL=postgresql://user:password@localhost:5432/equinelead

# RabbitMQ
RABBITMQ_URL=amqp://guest:guest@localhost:5672
QUEUE_NAME=scrapper_tasks

# Configuración de Scrapping
USER_AGENT=EquineLead-Bot/1.0
REQUEST_TIMEOUT=30
MAX_RETRIES=3
RATE_LIMIT_PER_SECOND=5

# Logging
RUST_LOG=info

Frontend Web (Node.js 18.19.1)

Crear archivo .env en src/frontend-web/:

# Endpoints API
VITE_API_URL=http://localhost:8000/api
VITE_ML_API_URL=http://localhost:8090/api

# Autenticación
VITE_AUTH_DOMAIN=auth.equinelead.com
VITE_AUTH_CLIENT_ID=your-client-id

# Analytics
VITE_GA_TRACKING_ID=UA-XXXXXXXXX-X
VITE_SENTRY_DSN=https://your-sentry-dsn@sentry.io/project

# Feature Flags
VITE_ENABLE_ANALYTICS=true
VITE_ENABLE_CHAT=false

Notas de Seguridad

  1. Nunca commitear archivos .env - Ya están en .gitignore
  2. Usar secrets diferentes para dev/staging/producción
  3. Rotar secrets regularmente (cada 90 días)
  4. Usar contraseñas fuertes - Mínimo 32 caracteres para producción

📖 Ver configuración completa: docs/environment-setup.md (documento aún no implementado)


📁 Estructura del Proyecto

equine-lead/
├── ci-cd/                  # 🤖 Automatización y Despliegue Continuo
│   ├── jenkins/            # Configuraciones y pipelines para Jenkins
│   └── README.md           # Guía maestra de DevOps
├── docs/                   # 📚 Documentación técnica y de negocio
│   ├── database/           # Esquema DB, SQL y Diagramas v2
│   ├── data-contracts/     # Contratos JSON y Notas de Diseño DS
│   ├── guides/             # 📖 Guías operativas y estándares
│   │   ├── DEVELOPER_ONBOARDING.md  # 🎓 Guía de onboarding para developers
│   │   ├── DOCUMENTATION_FLOW.md    # 📊 Mapa de navegación de documentación
│   │   └── GIT_WORKFLOW.md          # 🔄 Guía de flujo de Git
├── infrastructure/         # 🏗️ Configuración de la Nube (Oracle Cloud)
│   ├── terraform/          # Infraestructura como código (IaC)
│   └── docker/             # Configuración de servicios en contenedores
├── src/                    # 💻 Código fuente de componentes
│   ├── backend-csharp/     # API Backend en C# (.NET 8.0)
│   ├── data-science/       # Modelos ML y análisis (Python 3.12.3)
│   ├── scrapper-rust/      # Servicio de scraping (Rust 1.75.0)
│   ├── frontend-web/       # Dashboard web (React + Node.js 18)
│   └── mobile-apps/        # Apps móviles (iOS Swift, Android Kotlin)
├── tests/                  # 🧪 Infraestructura de Testing
│   ├── scripts/            # Scripts de automatización de tests
│   ├── backend-csharp/     # Tests del Backend
│   ├── data-science/       # Tests de ML/IA
│   ├── scrapper-rust/      # Tests del Scrapper
│   ├── frontend-web/       # Tests del Frontend
│   └── README.md           # Guía completa de testing
└── README.md               # 📖 Este archivo (Hub de documentación)

👥 Roles del Equipo

  • DevOps Lead: Diego Zapata Salhuana
  • Backend Developer (.NET): Junior
  • Backend DB: Isabel
  • Data Scientist / FastAPI: Leandro + David Alejandro
  • Frontend Developer: Franklin y Ronald
  • Mobile Developer: Franklin
  • Scrapping Engineer: Jorge
  • Project Manager: Franklin
  • GitHub Manager: Junior

📚 Hub de Documentación

Para Nuevos Developers

Infraestructura y Deployment

Testing y Calidad

Componentes Específicos

⚠️ Nota: Los READMEs de componentes individuales están en desarrollo o pendientes de creación. Los enlaces a continuación apuntan a las ubicaciones planificadas.

  • Backend C# - API Backend y lógica de negocio (README pendiente)
  • Data Science - Modelos ML y análisis de sentimiento (README en desarrollo)
  • Scrapper Rust - Servicio de scraping de alto rendimiento (README pendiente)
  • Frontend Web - Dashboard y UI web (README pendiente)
  • Mobile Apps - Apps iOS y Android (README pendiente)

🔄 Flujo de Desarrollo

graph LR
    A[Desarrollo Local] --> B[Ejecutar Tests]
    B --> C[Push a Feature Branch]
    C --> D[Jenkins: Tests Automáticos]
    D --> E{Tests Pasan?}
    E -->|Sí| F[Merge a Dev]
    E -->|No| A
    F --> G[Deploy a Staging]
    G --> H[QA Manual]
    H --> I{Aprobado?}
    I -->|Sí| J[Merge a Main]
    I -->|No| A
    J --> K[Deploy a Producción]
Loading

Pasos del Desarrollador

  1. Desarrollo Local

    git checkout -b feature/nombre-feature
    # Desarrollar código...
  2. Testing Local

    ./tests/scripts/run_all_tests.sh
  3. Push y PR

    git push origin feature/nombre-feature
    # Crear Pull Request en GitHub
  4. CI/CD Automático

    • Jenkins ejecuta tests automáticamente
    • Reporta resultados en el PR
    • Merge solo si todos los tests pasan

🚀 Getting Started

Prerrequisitos

Según tu componente, necesitarás:

  • .NET 8.0 SDK (Backend)
  • Python 3.12.3 (Data Science)
  • Rust 1.75.0 (Scrapper)
  • Node.js 20.x (Frontend)
  • Docker (Todos)

Setup Rápido

# 1. Clonar repositorio
git clone <repo-url>
cd equine-lead

# 2. Configurar entorno de testing
./tests/scripts/setup_test_env.sh

# 3. Ejecutar tests para verificar setup
./tests/scripts/run_all_tests.sh

# 4. Configurar tu componente específico
# Ver README de tu componente en src/<componente>/README.md

Ejecutar Tests Localmente

# Todos los tests
./tests/scripts/run_all_tests.sh

# Tests específicos por componente
./tests/scripts/run_backend_tests.sh
./tests/scripts/run_ml_tests.sh
./tests/scripts/run_scrapper_tests.sh
./tests/scripts/run_frontend_tests.sh

🧪 Infraestructura de Testing

Estado Actual

Completado:

  • Health checks para todos los componentes
  • Scripts de automatización de tests
  • Jenkinsfiles para CI/CD
  • Documentación completa de testing
  • Configuración de entornos de test

Tipos de Tests

Tipo Descripción Ubicación
Health Checks Verificación básica de compilación/ejecución tests/*/health_*
Unit Tests Tests unitarios de componentes tests/*/UnitTests/
Integration Tests Tests de integración entre servicios tests/*/IntegrationTests/
E2E Tests Tests end-to-end del flujo completo tests/e2e/

Analogía: El Auto de Carreras

Piensa en EquineLead como un auto de carreras de alta tecnología:

  • Testing = Inspección técnica antes de salir a la pista
  • Jenkins = Director del taller mecánico que coordina todas las revisiones
  • Scripts = Mecánicos automáticos especializados
  • Health Checks = Verificación rápida de que el motor enciende
  • Unit Tests = Revisión detallada de cada pieza
  • Integration Tests = Verificación de que todas las piezas trabajan juntas
  • Producción = La pista de carreras donde compites

📖 Ver guía completa: tests/README.md


📦 Entregables

Fase 1: Infraestructura de Testing ✅ Completado

  • Health checks para todos los componentes
  • Scripts de automatización de tests
  • Jenkinsfiles para pipelines CI/CD
  • Documentación completa
  • Configuración de entornos

Fase 2: Implementación de Componentes 🔄 En Progreso

  • Backend API (.NET 8.0)
  • Servicio ML (Python 3.12.3)
  • Scrapper (Rust 1.75.0)
  • Frontend Web (React + Node.js 18)
  • Apps Móviles (iOS/Android)

Fase 3: Integración y Deployment ⏳ Pendiente

  • Integración completa de servicios
  • Deployment a staging
  • QA y testing end-to-end
  • Deployment a producción

🆘 Soporte

Documentación

Troubleshooting

Contacto

  • DevOps Lead: Diego Zapata Salhuana
  • Canal de equipo: [Slack/Discord]

📄 Licencia

Este proyecto está bajo la Licencia MIT. Puedes ver los términos detallados en el archivo LICENSE

La Licencia MIT permite:

  • ✅ Uso comercial
  • ✅ Modificación
  • ✅ Distribución
  • ✅ Uso privado

Condiciones:

  • ℹ️ Mantener el aviso de copyright y la licencia en las copias del software.

Última actualización: 2026-02-20
Versión: 2.1 - Blueprint Técnico Real
Estado: Sprint semana 2/4 en progreso — cuello de botella en API Backend (Junior)

About

Motor de crecimiento basado en datos para la industria equina. MVP que convierte visitantes en leads calificados mediante análisis de sentimiento, lead scoring, automatización de funnels y APIs backend, enfocado en B2C y B2B de alto valor (caballos, servicios y equipamiento).

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors