Initial commit: Horux Strategy project setup
- Add project design document with complete specifications - Configure Turborepo monorepo structure - Add README with project overview and setup instructions - Configure .gitignore for Node.js/TypeScript project - Set up pnpm workspace configuration Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
70
.gitignore
vendored
Normal file
70
.gitignore
vendored
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
.pnpm-store/
|
||||||
|
|
||||||
|
# Build outputs
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
.next/
|
||||||
|
out/
|
||||||
|
|
||||||
|
# Environment files
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
*.env
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs/
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
coverage/
|
||||||
|
.nyc_output/
|
||||||
|
|
||||||
|
# Turbo
|
||||||
|
.turbo/
|
||||||
|
|
||||||
|
# Cache
|
||||||
|
.cache/
|
||||||
|
*.cache
|
||||||
|
|
||||||
|
# Temp files
|
||||||
|
tmp/
|
||||||
|
temp/
|
||||||
|
*.tmp
|
||||||
|
|
||||||
|
# Secrets (NEVER commit these)
|
||||||
|
*.pem
|
||||||
|
*.key
|
||||||
|
*.cer
|
||||||
|
credentials*.json
|
||||||
|
secrets*.json
|
||||||
|
|
||||||
|
# Database
|
||||||
|
*.db
|
||||||
|
*.sqlite
|
||||||
|
*.sqlite3
|
||||||
|
|
||||||
|
# Uploads
|
||||||
|
uploads/
|
||||||
|
storage/
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
generated/
|
||||||
|
*.generated.*
|
||||||
107
README.md
Normal file
107
README.md
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
# Horux Strategy
|
||||||
|
|
||||||
|
**CFO Digital para Empresas Mexicanas**
|
||||||
|
|
||||||
|
Plataforma SaaS de inteligencia financiera que transforma datos fiscales y contables en insights estratégicos accionables.
|
||||||
|
|
||||||
|
## Características Principales
|
||||||
|
|
||||||
|
- 📊 **Dashboards en tiempo real** - KPIs financieros actualizados automáticamente
|
||||||
|
- 📄 **Reportes ejecutivos con IA** - Narrativas inteligentes generadas con DeepSeek
|
||||||
|
- 🔗 **Integraciones automáticas** - SAT (FIEL), CONTPAQi, Aspel, Odoo, Alegra, SAP
|
||||||
|
- 📈 **+50 métricas financieras** - Core, Startup (MRR, CAC, LTV), Enterprise (EBITDA, ROI)
|
||||||
|
- 🔔 **Alertas inteligentes** - Detección automática de anomalías y riesgos
|
||||||
|
- 💰 **50% más económico** que la competencia
|
||||||
|
|
||||||
|
## Stack Tecnológico
|
||||||
|
|
||||||
|
- **Frontend**: Next.js 14, TypeScript, Tailwind CSS, Zustand
|
||||||
|
- **Backend**: Node.js, Express, TypeScript
|
||||||
|
- **Base de datos**: PostgreSQL (multi-tenant por schema)
|
||||||
|
- **Cache/Colas**: Redis, BullMQ
|
||||||
|
- **Storage**: MinIO / AWS S3
|
||||||
|
- **Monorepo**: Turborepo + pnpm
|
||||||
|
- **IA**: DeepSeek API
|
||||||
|
|
||||||
|
## Estructura del Proyecto
|
||||||
|
|
||||||
|
```
|
||||||
|
horux-strategy/
|
||||||
|
├── apps/
|
||||||
|
│ ├── web/ # Frontend Next.js
|
||||||
|
│ └── api/ # Backend Express
|
||||||
|
├── packages/
|
||||||
|
│ ├── shared/ # Tipos y utilidades compartidas
|
||||||
|
│ ├── database/ # Schemas y migraciones
|
||||||
|
│ └── ui/ # Componentes UI reutilizables
|
||||||
|
├── docs/
|
||||||
|
│ └── plans/ # Documentos de diseño
|
||||||
|
├── docker/ # Configuración Docker
|
||||||
|
└── scripts/ # Scripts de utilidad
|
||||||
|
```
|
||||||
|
|
||||||
|
## Requisitos
|
||||||
|
|
||||||
|
- Node.js 20+
|
||||||
|
- pnpm 8+
|
||||||
|
- PostgreSQL 15+
|
||||||
|
- Redis 7+
|
||||||
|
- Docker (opcional, recomendado)
|
||||||
|
|
||||||
|
## Instalación
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clonar repositorio
|
||||||
|
git clone https://git.consultoria-as.com/consultoria-as/HoruxStrategy.git
|
||||||
|
cd HoruxStrategy
|
||||||
|
|
||||||
|
# Instalar dependencias
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# Configurar variables de entorno
|
||||||
|
cp .env.example .env
|
||||||
|
# Editar .env con tus credenciales
|
||||||
|
|
||||||
|
# Iniciar servicios (Docker)
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Ejecutar migraciones
|
||||||
|
pnpm db:migrate
|
||||||
|
|
||||||
|
# Iniciar desarrollo
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Scripts Disponibles
|
||||||
|
|
||||||
|
| Script | Descripción |
|
||||||
|
|--------|-------------|
|
||||||
|
| `pnpm dev` | Iniciar todos los servicios en modo desarrollo |
|
||||||
|
| `pnpm build` | Compilar todos los paquetes |
|
||||||
|
| `pnpm test` | Ejecutar tests |
|
||||||
|
| `pnpm lint` | Ejecutar linter |
|
||||||
|
| `pnpm db:migrate` | Ejecutar migraciones de BD |
|
||||||
|
| `pnpm db:seed` | Poblar BD con datos de prueba |
|
||||||
|
|
||||||
|
## Documentación
|
||||||
|
|
||||||
|
- [Documento de Diseño](./docs/plans/2026-01-31-horux-strategy-design.md)
|
||||||
|
- [API Documentation](./docs/api/) (próximamente)
|
||||||
|
- [Guía de Contribución](./CONTRIBUTING.md) (próximamente)
|
||||||
|
|
||||||
|
## Planes y Precios
|
||||||
|
|
||||||
|
| Plan | Precio | Para empresas con ingresos |
|
||||||
|
|------|--------|---------------------------|
|
||||||
|
| Startup | $5,999 MXN/mes | < $100M MXN/año |
|
||||||
|
| PYME | $6,499 MXN/mes | < $400M MXN/año |
|
||||||
|
| Enterprise | $8,499 MXN/mes | < $1,000M MXN/año |
|
||||||
|
| Corporativo | $9,999 MXN/mes | > $1,000M MXN/año |
|
||||||
|
|
||||||
|
## Licencia
|
||||||
|
|
||||||
|
Propietario - HORUX360 © 2026
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Desarrollado por [HORUX360](https://horux360.com)
|
||||||
701
docs/plans/2026-01-31-horux-strategy-design.md
Normal file
701
docs/plans/2026-01-31-horux-strategy-design.md
Normal file
@@ -0,0 +1,701 @@
|
|||||||
|
# Horux Strategy - Documento de Diseño
|
||||||
|
|
||||||
|
**Versión:** 1.0
|
||||||
|
**Fecha:** 31 de Enero, 2026
|
||||||
|
**Autor:** HORUX360
|
||||||
|
**Estado:** Aprobado para implementación
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tabla de Contenidos
|
||||||
|
|
||||||
|
1. [Resumen Ejecutivo](#1-resumen-ejecutivo)
|
||||||
|
2. [Decisiones de Producto](#2-decisiones-de-producto)
|
||||||
|
3. [Arquitectura General](#3-arquitectura-general)
|
||||||
|
4. [Métricas y KPIs](#4-métricas-y-kpis)
|
||||||
|
5. [Pipeline de Reportes con IA](#5-pipeline-de-reportes-con-ia)
|
||||||
|
6. [Integraciones](#6-integraciones)
|
||||||
|
7. [Estructura de Base de Datos](#7-estructura-de-base-de-datos)
|
||||||
|
8. [Planes y Pricing](#8-planes-y-pricing)
|
||||||
|
9. [Flujos de Usuario](#9-flujos-de-usuario)
|
||||||
|
10. [Roadmap de Implementación](#10-roadmap-de-implementación)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Resumen Ejecutivo
|
||||||
|
|
||||||
|
### 1.1 Visión del Producto
|
||||||
|
|
||||||
|
Horux Strategy es una plataforma SaaS de inteligencia financiera que transforma datos fiscales y contables en insights estratégicos accionables. Combina dashboards en tiempo real con reportes ejecutivos generados por IA, posicionándose como el "CFO Digital" para empresas mexicanas.
|
||||||
|
|
||||||
|
### 1.2 Propuesta de Valor
|
||||||
|
|
||||||
|
- **50% más económico que Monthly.la** (competidor principal)
|
||||||
|
- **Automatización completa**: Conexión directa con SAT y 5 sistemas contables
|
||||||
|
- **Dashboards en tiempo real** + **Reportes ejecutivos con IA**
|
||||||
|
- **+50 métricas financieras** organizadas en módulos (Core, Startup, Enterprise)
|
||||||
|
- **Plataforma modular** que se adapta a PYMES, startups y empresas medianas
|
||||||
|
|
||||||
|
### 1.3 Diferenciadores Clave
|
||||||
|
|
||||||
|
| Aspecto | Monthly.la | Horux Strategy |
|
||||||
|
|---------|------------|----------------|
|
||||||
|
| Precio | $11,999 - $19,999/mes | $5,999 - $9,999/mes |
|
||||||
|
| Dashboards | No (solo reportes) | Sí, tiempo real |
|
||||||
|
| Integraciones | Manual | Automáticas (5 sistemas) |
|
||||||
|
| Frecuencia reportes | Mensual | Bajo demanda |
|
||||||
|
| Alertas | No | Sí, automáticas |
|
||||||
|
| API | No | Sí (planes Pro+) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Decisiones de Producto
|
||||||
|
|
||||||
|
### 2.1 Resumen de Decisiones
|
||||||
|
|
||||||
|
| Aspecto | Decisión |
|
||||||
|
|---------|----------|
|
||||||
|
| **Público objetivo** | Modular: PYMES, startups, empresas medianas |
|
||||||
|
| **Fuentes de datos** | SAT (FIEL) + Sistemas contables (5) |
|
||||||
|
| **Core value** | Dashboards live + Reportes ejecutivos con IA |
|
||||||
|
| **Relación con Horux360** | Productos completamente separados |
|
||||||
|
| **Modelo de pricing** | Suscripción mensual por tamaño de empresa |
|
||||||
|
| **Stack tecnológico** | Next.js 14 + Express + PostgreSQL + Turborepo |
|
||||||
|
| **IA** | DeepSeek API |
|
||||||
|
| **Timeline** | Máxima velocidad (16 semanas) |
|
||||||
|
|
||||||
|
### 2.2 Público Objetivo
|
||||||
|
|
||||||
|
#### Segmento 1: PYMES Tradicionales
|
||||||
|
- Restaurantes, comercios, servicios
|
||||||
|
- Necesitan visibilidad básica de flujo de caja y rentabilidad
|
||||||
|
- Buscan evitar sorpresas fiscales
|
||||||
|
|
||||||
|
#### Segmento 2: Startups con Inversionistas
|
||||||
|
- Empresas tecnológicas en crecimiento
|
||||||
|
- Necesitan métricas de crecimiento (MRR, CAC, LTV, runway)
|
||||||
|
- Reportes para inversionistas
|
||||||
|
|
||||||
|
#### Segmento 3: Empresas Medianas
|
||||||
|
- Operaciones establecidas
|
||||||
|
- Necesitan estados financieros completos, presupuestos, comparativos
|
||||||
|
- Reportes para junta directiva
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Arquitectura General
|
||||||
|
|
||||||
|
### 3.1 Diagrama de Arquitectura
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────────┐
|
||||||
|
│ HORUX STRATEGY │
|
||||||
|
├─────────────────────────────────────────────────────────────────┤
|
||||||
|
│ FRONTEND (Next.js 14) │
|
||||||
|
│ ├── Dashboard Hub (métricas en tiempo real) │
|
||||||
|
│ ├── Centro de Reportes (generación y descarga) │
|
||||||
|
│ ├── Configuración de Empresa │
|
||||||
|
│ └── Gestión de Integraciones │
|
||||||
|
├─────────────────────────────────────────────────────────────────┤
|
||||||
|
│ BACKEND (Express + TypeScript) │
|
||||||
|
│ ├── Auth Service (JWT + roles) │
|
||||||
|
│ ├── Integration Service (SAT, contables) │
|
||||||
|
│ ├── Analytics Engine (cálculo de métricas) │
|
||||||
|
│ ├── Report Generator (plantillas + IA) │
|
||||||
|
│ └── Scheduler (sync automático, alertas) │
|
||||||
|
├─────────────────────────────────────────────────────────────────┤
|
||||||
|
│ DATA LAYER │
|
||||||
|
│ ├── PostgreSQL (multi-tenant por schema) │
|
||||||
|
│ ├── Redis (cache de métricas, colas) │
|
||||||
|
│ └── S3/MinIO (reportes PDF generados) │
|
||||||
|
├─────────────────────────────────────────────────────────────────┤
|
||||||
|
│ INTEGRACIONES EXTERNAS │
|
||||||
|
│ ├── SAT (descarga CFDI vía FIEL) │
|
||||||
|
│ ├── Sistemas Contables (CONTPAQi, Aspel, Odoo, Alegra, SAP) │
|
||||||
|
│ └── DeepSeek API (generación narrativa) │
|
||||||
|
└─────────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.2 Stack Tecnológico
|
||||||
|
|
||||||
|
| Componente | Tecnología |
|
||||||
|
|------------|------------|
|
||||||
|
| Frontend | Next.js 14, TypeScript, Tailwind CSS, Zustand |
|
||||||
|
| Backend | Node.js, Express, TypeScript |
|
||||||
|
| Base de datos | PostgreSQL (multi-tenant por schema) |
|
||||||
|
| Cache/Colas | Redis, BullMQ |
|
||||||
|
| Storage | MinIO / AWS S3 |
|
||||||
|
| Monorepo | Turborepo + pnpm |
|
||||||
|
| Contenedores | Docker Compose |
|
||||||
|
| IA | DeepSeek API |
|
||||||
|
| Gráficas | Recharts (frontend), Chart.js (server-side) |
|
||||||
|
| PDF | Puppeteer |
|
||||||
|
|
||||||
|
### 3.3 Arquitectura Multi-tenant
|
||||||
|
|
||||||
|
- **Estrategia**: Schema por tenant en PostgreSQL
|
||||||
|
- **Beneficios**:
|
||||||
|
- Aislamiento de datos garantizado a nivel BD
|
||||||
|
- Facilita backups y restauración por cliente
|
||||||
|
- Performance consistente
|
||||||
|
- Cumplimiento de privacidad
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Métricas y KPIs
|
||||||
|
|
||||||
|
### 4.1 Módulo Core (Todos los planes)
|
||||||
|
|
||||||
|
| Métrica | Fuente | Requisitos Usuario | Cálculo |
|
||||||
|
|---------|--------|-------------------|---------|
|
||||||
|
| Ingresos totales | SAT | Conectar FIEL | Σ CFDIs emitidos tipo "I" |
|
||||||
|
| Gastos totales | SAT | Conectar FIEL | Σ CFDIs recibidos |
|
||||||
|
| Utilidad bruta | SAT | Clasificar costos | Ingresos - Costo de ventas |
|
||||||
|
| Utilidad neta | SAT + Contable | Clasificar gastos | Utilidad bruta - Gastos - Impuestos |
|
||||||
|
| Flujo de caja | SAT | Ninguno | Complementos de pago recibidos - pagados |
|
||||||
|
| Cuentas por cobrar | SAT | Ninguno | Facturas emitidas sin pago |
|
||||||
|
| Cuentas por pagar | SAT | Ninguno | Facturas recibidas sin pago |
|
||||||
|
| Antigüedad CxC | SAT | Ninguno | Días desde emisión, agrupado 0-30, 31-60, 61-90, 90+ |
|
||||||
|
| Antigüedad CxP | SAT | Ninguno | Días desde recepción sin pago |
|
||||||
|
| IVA por pagar | SAT | Ninguno | IVA trasladado - IVA acreditable |
|
||||||
|
| IVA a favor | SAT | Ninguno | Cuando acreditable > trasladado |
|
||||||
|
|
||||||
|
### 4.2 Módulo Startup (Plan PYME+)
|
||||||
|
|
||||||
|
| Métrica | Fuente | Requisitos Usuario | Cálculo |
|
||||||
|
|---------|--------|-------------------|---------|
|
||||||
|
| MRR | SAT + Config | Marcar clientes recurrentes | Σ ingresos recurrentes mensuales |
|
||||||
|
| ARR | Derivado | Igual que MRR | MRR × 12 |
|
||||||
|
| Runway | SAT + Config | Ingresar saldo bancario | Saldo ÷ Burn rate |
|
||||||
|
| Burn rate | SAT | Ninguno | Promedio (Gastos - Ingresos) mensual |
|
||||||
|
| Net Burn | SAT | Ninguno | Gastos - Ingresos mensual |
|
||||||
|
| Gross Burn | SAT | Ninguno | Solo gastos mensuales |
|
||||||
|
| CAC | Config | Gasto marketing + clientes nuevos | Gasto MKT ÷ Clientes nuevos |
|
||||||
|
| LTV | SAT + Config | Marcar recurrentes + histórico | (ARPU × Margen) ÷ Churn |
|
||||||
|
| Churn rate | Config | Registrar clientes activos/cancelados | Perdidos ÷ Inicio período |
|
||||||
|
| Growth rate MoM | SAT | Ninguno | (Actual - Anterior) ÷ Anterior |
|
||||||
|
| Growth rate YoY | SAT | Ninguno | (Año actual - Año anterior) ÷ Año anterior |
|
||||||
|
| LTV:CAC Ratio | Derivado | Igual que LTV y CAC | LTV ÷ CAC |
|
||||||
|
| Months to recover CAC | Derivado | Igual que CAC | CAC ÷ (ARPU × Margen) |
|
||||||
|
|
||||||
|
### 4.3 Módulo Enterprise (Plan Enterprise+)
|
||||||
|
|
||||||
|
| Métrica | Fuente | Requisitos Usuario | Cálculo |
|
||||||
|
|---------|--------|-------------------|---------|
|
||||||
|
| EBITDA | Contable | Conectar sistema contable | Utilidad + Depreciación + Amortización |
|
||||||
|
| Margen EBITDA | Derivado | Igual que EBITDA | EBITDA ÷ Ingresos |
|
||||||
|
| ROI | Contable + Config | Ingresar inversión | (Ganancia - Inversión) ÷ Inversión |
|
||||||
|
| ROE | Contable | Conectar contable | Utilidad neta ÷ Capital contable |
|
||||||
|
| ROA | Contable | Conectar contable | Utilidad neta ÷ Activos totales |
|
||||||
|
| Razón corriente | Contable | Conectar contable | Activos circulantes ÷ Pasivos circulantes |
|
||||||
|
| Prueba ácida | Contable | Conectar contable | (AC - Inventarios) ÷ PC |
|
||||||
|
| Endeudamiento | Contable | Conectar contable | Pasivos ÷ Activos |
|
||||||
|
| Apalancamiento | Contable | Conectar contable | Pasivos ÷ Capital |
|
||||||
|
| Punto equilibrio | SAT + Config | Clasificar costos fijos/variables | Fijos ÷ (1 - Variables/Ventas) |
|
||||||
|
| Margen contribución | SAT + Config | Clasificar variables | Ventas - Costos variables |
|
||||||
|
| Presupuesto vs Real | Config | Cargar presupuesto | Variación absoluta y % |
|
||||||
|
| Forecast | SAT + IA | Histórico 6+ meses | Proyección estadística + IA |
|
||||||
|
| Working capital | Contable | Conectar contable | AC - PC |
|
||||||
|
| DSO | SAT | Ninguno | (CxC ÷ Ventas crédito) × Días |
|
||||||
|
| DPO | SAT | Ninguno | (CxP ÷ Compras crédito) × Días |
|
||||||
|
| Cash Conversion Cycle | Derivado | Ninguno | DSO + Days Inventory - DPO |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Pipeline de Reportes con IA
|
||||||
|
|
||||||
|
### 5.1 Tipos de Reportes
|
||||||
|
|
||||||
|
| Reporte | Frecuencia | Audiencia | Contenido |
|
||||||
|
|---------|------------|-----------|-----------|
|
||||||
|
| Ejecutivo Mensual | Mensual | CEO/Dueño | Resumen, tendencias, alertas, recomendaciones |
|
||||||
|
| Para Inversionistas | Mensual/Trimestral | Inversionistas | Métricas startup, runway, crecimiento |
|
||||||
|
| Junta Directiva | Trimestral | Consejo | Análisis profundo, comparativos, proyecciones |
|
||||||
|
| Flash Semanal | Semanal | Operaciones | KPIs clave, alertas urgentes |
|
||||||
|
| Fiscal | Mensual | Contador/CFO | IVA, retenciones, cumplimiento |
|
||||||
|
|
||||||
|
### 5.2 Pipeline de Generación (10 Fases)
|
||||||
|
|
||||||
|
#### FASE 1: Trigger y Scheduling
|
||||||
|
- Disparadores: Cron, manual, evento, fecha programada
|
||||||
|
- Cola de trabajos con BullMQ
|
||||||
|
- Prioridades y reintentos
|
||||||
|
|
||||||
|
#### FASE 2: Extracción de Datos
|
||||||
|
- Datos del período actual
|
||||||
|
- Datos históricos (YoY, MoM)
|
||||||
|
- Contexto del cliente (industria, tamaño, metas)
|
||||||
|
- Datos del sistema contable
|
||||||
|
|
||||||
|
#### FASE 3: Cálculo de Métricas
|
||||||
|
- Ejecutar fórmulas de métricas
|
||||||
|
- Calcular variaciones
|
||||||
|
- Detectar anomalías (reglas)
|
||||||
|
- Clasificar insights (positivo, neutral, negativo)
|
||||||
|
|
||||||
|
#### FASE 4: Preparación de Contexto para IA
|
||||||
|
- Construcción de JSON estructurado
|
||||||
|
- Selección de plantilla de prompt
|
||||||
|
- Personalización por tipo de reporte
|
||||||
|
|
||||||
|
#### FASE 5: Llamadas a DeepSeek API
|
||||||
|
- Llamadas paralelas por sección
|
||||||
|
- Configuración: temperature=0.3, max_tokens variable
|
||||||
|
- Manejo de errores y fallbacks
|
||||||
|
- Validación de respuestas (anti-alucinación)
|
||||||
|
|
||||||
|
#### FASE 6: Generación de Visualizaciones
|
||||||
|
- Gráficas con Chart.js server-side
|
||||||
|
- Output PNG/SVG para PDF
|
||||||
|
- Temas consistentes con branding
|
||||||
|
|
||||||
|
#### FASE 7: Composición del Documento
|
||||||
|
- Motor de plantillas (Puppeteer HTML→PDF)
|
||||||
|
- Inyección de textos, métricas, gráficas
|
||||||
|
- Formatos: PDF, Excel, PowerPoint
|
||||||
|
|
||||||
|
#### FASE 8: Post-procesamiento y Calidad
|
||||||
|
- Validación del PDF
|
||||||
|
- Detección de alucinaciones (segunda capa)
|
||||||
|
- Scoring de calidad
|
||||||
|
|
||||||
|
#### FASE 9: Almacenamiento y Entrega
|
||||||
|
- Storage en S3/MinIO
|
||||||
|
- Email automático
|
||||||
|
- Notificación in-app
|
||||||
|
- Link de descarga
|
||||||
|
|
||||||
|
#### FASE 10: Feedback y Mejora Continua
|
||||||
|
- Rating del reporte
|
||||||
|
- Feedback por sección
|
||||||
|
- Mejora de prompts
|
||||||
|
- Analytics del sistema
|
||||||
|
|
||||||
|
### 5.3 Estructura del Reporte Ejecutivo
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ HORUX STRATEGY - Reporte Ejecutivo │
|
||||||
|
│ [Nombre Empresa] | [Mes Año] │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 📊 RESUMEN EJECUTIVO (IA) │
|
||||||
|
│ [Narrativa generada con insights principales] │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 💰 RESULTADOS DEL MES │
|
||||||
|
│ [KPIs principales con variaciones] │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 📈 GRÁFICAS │
|
||||||
|
│ [Visualizaciones de tendencias y composición] │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ ⚠️ ALERTAS Y RIESGOS (IA) │
|
||||||
|
│ [Problemas detectados automáticamente] │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 💡 RECOMENDACIONES (IA) │
|
||||||
|
│ [Acciones sugeridas basadas en datos] │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ 📅 PRÓXIMO MES - QUÉ ESPERAR │
|
||||||
|
│ [Proyecciones y eventos importantes] │
|
||||||
|
└─────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Integraciones
|
||||||
|
|
||||||
|
### 6.1 SAT (Solo FIEL)
|
||||||
|
|
||||||
|
**Autenticación**: Exclusivamente e.firma (FIEL)
|
||||||
|
- Archivos: .cer + .key + contraseña
|
||||||
|
- Contraseña NO se almacena
|
||||||
|
- .key encriptado con AES-256
|
||||||
|
|
||||||
|
**Seguridad**:
|
||||||
|
- Validar vigencia del certificado
|
||||||
|
- Verificar que no esté revocado
|
||||||
|
- Alertar 30 días antes de expiración
|
||||||
|
|
||||||
|
**Sincronización**:
|
||||||
|
- Inicial: últimos 12-72 meses
|
||||||
|
- Incremental: cada 2-8 horas (según plan)
|
||||||
|
- Delta: solo CFDIs nuevos
|
||||||
|
|
||||||
|
### 6.2 Sistemas Contables
|
||||||
|
|
||||||
|
| Sistema | Método de Conexión | Datos |
|
||||||
|
|---------|-------------------|-------|
|
||||||
|
| **CONTPAQi** | SDK/BD directa + Agente Windows | Catálogo, pólizas, balanza, auxiliares |
|
||||||
|
| **Aspel** | Firebird/SQL Server + Agente | COI, SAE, balanza, CxC/CxP |
|
||||||
|
| **Odoo** | API XML-RPC/JSON-RPC | Cuentas, moves, payments, partners |
|
||||||
|
| **Alegra** | API REST (OAuth 2.0) | Invoices, bills, payments, contacts |
|
||||||
|
| **SAP B1** | Service Layer REST API | Chart of accounts, journals, invoices |
|
||||||
|
|
||||||
|
### 6.3 Agente Local (Horux Sync Agent)
|
||||||
|
|
||||||
|
Para CONTPAQi y Aspel on-premise:
|
||||||
|
- Instalador Windows (.msi)
|
||||||
|
- Servicio Windows auto-inicio
|
||||||
|
- Comunicación siempre saliente (no requiere abrir puertos)
|
||||||
|
- Datos encriptados en tránsito y reposo
|
||||||
|
- Auto-actualización
|
||||||
|
|
||||||
|
### 6.4 Arquitectura de Conectores
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||||||
|
│ Conector │ │ Adapter │ │ Modelo │
|
||||||
|
│ (por sistema) │───▶│ (normaliza) │───▶│ Unificado │
|
||||||
|
└─────────────────┘ └──────────────────┘ └──────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Interfaz común: `IConnector`
|
||||||
|
- validateCredentials()
|
||||||
|
- testConnection()
|
||||||
|
- getAccounts(), getTransactions(), getJournalEntries()
|
||||||
|
- syncIncremental(), syncFull()
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Estructura de Base de Datos
|
||||||
|
|
||||||
|
### 7.1 Schema Public (Compartido)
|
||||||
|
|
||||||
|
**Tablas principales**:
|
||||||
|
- `tenants` - Empresas registradas
|
||||||
|
- `users` - Usuarios de la plataforma
|
||||||
|
- `user_sessions` - Sesiones activas
|
||||||
|
- `plans` - Planes de suscripción
|
||||||
|
- `subscriptions` - Relación tenant-plan
|
||||||
|
- `subscription_history` - Historial de cambios
|
||||||
|
- `payment_methods` - Métodos de pago
|
||||||
|
- `invoices` - Facturas de cobro
|
||||||
|
- `audit_log` - Log de auditoría global
|
||||||
|
- `background_jobs` - Jobs en cola
|
||||||
|
- `api_keys` - Llaves de API
|
||||||
|
- `webhooks` - Webhooks configurados
|
||||||
|
- `feature_flags` - Feature flags
|
||||||
|
|
||||||
|
### 7.2 Schema Tenant (Por Empresa)
|
||||||
|
|
||||||
|
**Tablas de datos fiscales**:
|
||||||
|
- `sat_credentials` - Credenciales FIEL encriptadas
|
||||||
|
- `sat_sync_history` - Historial de sincronizaciones
|
||||||
|
- `cfdis` - Comprobantes fiscales
|
||||||
|
- `complementos_pago` - Complementos de pago
|
||||||
|
- `documentos_pagados` - Relación pago-CFDI
|
||||||
|
|
||||||
|
**Tablas de datos financieros**:
|
||||||
|
- `transactions` - Modelo unificado de transacciones
|
||||||
|
- `payments` - Pagos registrados
|
||||||
|
- `contacts` - Clientes y proveedores
|
||||||
|
- `accounts` - Cuentas contables
|
||||||
|
- `journal_entries` - Pólizas contables
|
||||||
|
- `journal_entry_lines` - Movimientos de pólizas
|
||||||
|
- `categories` - Categorías de clasificación
|
||||||
|
- `cost_centers` - Centros de costo
|
||||||
|
- `projects` - Proyectos
|
||||||
|
- `bank_accounts` - Cuentas bancarias
|
||||||
|
- `bank_transactions` - Movimientos bancarios
|
||||||
|
|
||||||
|
**Tablas de análisis**:
|
||||||
|
- `metrics_cache` - Métricas precalculadas
|
||||||
|
- `metrics_history` - Historial para tendencias
|
||||||
|
- `goals` - Metas y objetivos
|
||||||
|
- `alerts` - Alertas generadas
|
||||||
|
- `alert_rules` - Reglas de alertas
|
||||||
|
- `budgets` - Presupuestos
|
||||||
|
- `budget_lines` - Líneas de presupuesto
|
||||||
|
- `recurring_revenue_config` - Configuración MRR
|
||||||
|
|
||||||
|
**Tablas de reportes**:
|
||||||
|
- `reports` - Reportes generados
|
||||||
|
- `report_schedules` - Reportes programados
|
||||||
|
- `report_feedback` - Feedback de reportes
|
||||||
|
|
||||||
|
**Tablas de configuración**:
|
||||||
|
- `integration_configs` - Configuración de integraciones
|
||||||
|
- `integration_sync_history` - Historial de sync
|
||||||
|
- `settings` - Configuración general
|
||||||
|
- `categorization_rules` - Reglas de categorización
|
||||||
|
- `dashboard_configs` - Configuración de dashboards
|
||||||
|
|
||||||
|
**Tablas auxiliares**:
|
||||||
|
- `attachments` - Archivos adjuntos
|
||||||
|
- `notes` - Notas y comentarios
|
||||||
|
- `activity_log` - Actividad del usuario
|
||||||
|
- `user_notifications` - Notificaciones
|
||||||
|
- `exports` - Exportaciones
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Planes y Pricing
|
||||||
|
|
||||||
|
### 8.1 Estructura de Precios
|
||||||
|
|
||||||
|
| Plan | Precio Mensual | Precio Anual | Ingresos Anuales |
|
||||||
|
|------|---------------|--------------|------------------|
|
||||||
|
| **STARTUP** | $5,999 MXN | $59,990 MXN | < $100M MXN |
|
||||||
|
| **PYME** | $6,499 MXN | $64,990 MXN | < $400M MXN |
|
||||||
|
| **ENTERPRISE** | $8,499 MXN | $84,990 MXN | < $1,000M MXN |
|
||||||
|
| **CORPORATIVO** | $9,999 MXN | $99,990 MXN | > $1,000M MXN |
|
||||||
|
|
||||||
|
**Comparativa con Monthly.la** (50% más económico):
|
||||||
|
- Monthly.la Pequeña: $11,999 → Horux: $5,999
|
||||||
|
- Monthly.la Mediana: $12,999 → Horux: $6,499
|
||||||
|
- Monthly.la Grande: $16,999 → Horux: $8,499
|
||||||
|
- Monthly.la Extra: $19,999 → Horux: $9,999
|
||||||
|
|
||||||
|
### 8.2 Features por Plan
|
||||||
|
|
||||||
|
| Feature | STARTUP | PYME | ENTERPRISE | CORPORATIVO |
|
||||||
|
|---------|---------|------|------------|-------------|
|
||||||
|
| Usuarios incluidos | 3 | 5 | 10 | Ilimitados |
|
||||||
|
| RFCs conectados | 1 | 2 | 5 | 10 |
|
||||||
|
| SAT (FIEL) | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| CONTPAQi/Aspel | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| Odoo/Alegra | ❌ | ✅ | ✅ | ✅ |
|
||||||
|
| SAP Business One | ❌ | ❌ | ✅ | ✅ |
|
||||||
|
| Métricas totales | +40 | +50 | +50 | +50 |
|
||||||
|
| Módulo Core | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| Módulo Startup | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| Módulo Enterprise | ❌ | ✅ | ✅ | ✅ |
|
||||||
|
| Reportes/mes | 5 | 15 | 30 | Ilimitados |
|
||||||
|
| Historial datos | 24 meses | 36 meses | 60 meses | Ilimitado |
|
||||||
|
| API | ❌ | Lectura | Completa | Completa |
|
||||||
|
| Soporte | Email | Chat | Prioritario | Dedicado |
|
||||||
|
|
||||||
|
### 8.3 Trial
|
||||||
|
|
||||||
|
- **Duración**: 14 días
|
||||||
|
- **Acceso**: Plan PYME completo
|
||||||
|
- **Tarjeta**: No requerida
|
||||||
|
- **Ofertas conversión**: 17% descuento anual, 20% primeros 3 meses
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Flujos de Usuario
|
||||||
|
|
||||||
|
### 9.1 Mapa de Navegación
|
||||||
|
|
||||||
|
```
|
||||||
|
SIDEBAR:
|
||||||
|
├── 🏠 Dashboard
|
||||||
|
├── 📊 Métricas (Core, Startup, Enterprise)
|
||||||
|
├── 📄 Reportes (Generar, Historial, Programados)
|
||||||
|
├── 💰 Transacciones (Ingresos, Gastos, CxC, CxP)
|
||||||
|
├── 🧾 CFDIs (Emitidos, Recibidos, Complementos)
|
||||||
|
├── 👥 Contactos (Clientes, Proveedores)
|
||||||
|
├── 🔗 Integraciones (SAT, Contables)
|
||||||
|
├── 🔔 Alertas
|
||||||
|
├── 📈 Presupuestos
|
||||||
|
└── ⚙️ Configuración
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.2 Flujo de Onboarding
|
||||||
|
|
||||||
|
1. **Registro**: Email + contraseña o OAuth
|
||||||
|
2. **Información empresa**: RFC, industria, tamaño, ingresos
|
||||||
|
3. **Conectar SAT**: Upload FIEL (.cer, .key, contraseña)
|
||||||
|
4. **Sincronización**: Descarga automática de CFDIs
|
||||||
|
5. **Sistema contable** (opcional): Seleccionar y configurar
|
||||||
|
6. **¡Listo!**: Dashboard con métricas
|
||||||
|
|
||||||
|
### 9.3 Pantallas Principales
|
||||||
|
|
||||||
|
- **Dashboard**: KPIs, gráficas, alertas, acciones rápidas
|
||||||
|
- **Métricas**: Tabs por módulo, gráficas de tendencia, detalles
|
||||||
|
- **Generar Reporte**: Selección tipo, período, opciones, generación
|
||||||
|
- **Transacciones**: Lista filtrable, detalles, categorización
|
||||||
|
- **CFDIs**: Lista, búsqueda, XML, complementos de pago
|
||||||
|
- **Integraciones**: Estado de conexiones, configuración, sync manual
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Roadmap de Implementación
|
||||||
|
|
||||||
|
### 10.1 Resumen de Fases
|
||||||
|
|
||||||
|
| Fase | Nombre | Duración | Equipos |
|
||||||
|
|------|--------|----------|---------|
|
||||||
|
| 1 | Foundation | 2 semanas | 3 |
|
||||||
|
| 2 | Core MVP | 4 semanas | 4 |
|
||||||
|
| 3 | Integraciones | 4 semanas | 5 |
|
||||||
|
| 4 | IA y Reportes | 3 semanas | 3 |
|
||||||
|
| 5 | Scale & Polish | 3 semanas | 4 |
|
||||||
|
| **Total** | | **16 semanas** | |
|
||||||
|
|
||||||
|
### 10.2 Fase 1: Foundation (Semanas 1-2)
|
||||||
|
|
||||||
|
**Equipo A: Infraestructura**
|
||||||
|
- Setup monorepo Turborepo
|
||||||
|
- Configurar PostgreSQL, Redis, MinIO
|
||||||
|
- Docker Compose dev
|
||||||
|
- CI/CD pipeline básico
|
||||||
|
|
||||||
|
**Equipo B: Auth & Tenants**
|
||||||
|
- Sistema JWT + refresh tokens
|
||||||
|
- Registro, login, reset password
|
||||||
|
- Multi-tenant middleware
|
||||||
|
- Creación schemas tenant
|
||||||
|
|
||||||
|
**Equipo C: Frontend Base**
|
||||||
|
- Setup Next.js 14
|
||||||
|
- Tailwind + componentes UI
|
||||||
|
- Layout principal
|
||||||
|
- Sistema de rutas
|
||||||
|
|
||||||
|
**Entregables**:
|
||||||
|
- ✅ Repo configurado y funcionando
|
||||||
|
- ✅ Auth completo con multi-tenant
|
||||||
|
- ✅ Usuario puede registrarse y ver dashboard vacío
|
||||||
|
|
||||||
|
### 10.3 Fase 2: Core MVP (Semanas 3-6)
|
||||||
|
|
||||||
|
**Equipo A: Integración SAT**
|
||||||
|
- Upload y validación FIEL
|
||||||
|
- Conexión Web Service SAT
|
||||||
|
- Descarga masiva CFDIs
|
||||||
|
- Parser XML, sync incremental
|
||||||
|
|
||||||
|
**Equipo B: Motor de Métricas**
|
||||||
|
- Modelo de transacciones
|
||||||
|
- Cálculo métricas Core
|
||||||
|
- Cache de métricas
|
||||||
|
- API endpoints
|
||||||
|
|
||||||
|
**Equipo C: Dashboard Frontend**
|
||||||
|
- Dashboard principal
|
||||||
|
- KPI cards, gráficas
|
||||||
|
- Selector período, comparativos
|
||||||
|
|
||||||
|
**Equipo D: Gestión de Datos**
|
||||||
|
- CRUD Contactos, Categorías
|
||||||
|
- Vista transacciones, CFDIs
|
||||||
|
- Filtros, búsqueda, exportar
|
||||||
|
|
||||||
|
**Entregables**:
|
||||||
|
- ✅ Usuario conecta SAT con FIEL
|
||||||
|
- ✅ CFDIs se descargan automáticamente
|
||||||
|
- ✅ Dashboard muestra métricas Core
|
||||||
|
|
||||||
|
### 10.4 Fase 3: Integraciones (Semanas 7-10)
|
||||||
|
|
||||||
|
**5 equipos paralelos**:
|
||||||
|
- Equipo A: CONTPAQi (SDK + Agente)
|
||||||
|
- Equipo B: Aspel (Firebird + Agente)
|
||||||
|
- Equipo C: Odoo (XML-RPC)
|
||||||
|
- Equipo D: Alegra (REST API)
|
||||||
|
- Equipo E: SAP B1 + Métricas avanzadas
|
||||||
|
|
||||||
|
**Entregables**:
|
||||||
|
- ✅ 5 integraciones contables funcionando
|
||||||
|
- ✅ Agente local disponible
|
||||||
|
- ✅ Todas las métricas (+50) calculándose
|
||||||
|
|
||||||
|
### 10.5 Fase 4: IA y Reportes (Semanas 11-13)
|
||||||
|
|
||||||
|
**Equipo A: Pipeline IA**
|
||||||
|
- Integración DeepSeek API
|
||||||
|
- Construcción de contexto
|
||||||
|
- Prompt templates
|
||||||
|
- Validación respuestas
|
||||||
|
|
||||||
|
**Equipo B: Generación Reportes**
|
||||||
|
- Motor gráficas server-side
|
||||||
|
- Plantillas HTML/PDF
|
||||||
|
- Generación Excel, PowerPoint
|
||||||
|
- Job queue async
|
||||||
|
|
||||||
|
**Equipo C: UI Reportes + Alertas**
|
||||||
|
- Pantalla generar reporte
|
||||||
|
- Historial, visor PDF
|
||||||
|
- Sistema de alertas
|
||||||
|
- Centro notificaciones
|
||||||
|
|
||||||
|
**Entregables**:
|
||||||
|
- ✅ Reportes ejecutivos con IA
|
||||||
|
- ✅ 5 tipos de reportes
|
||||||
|
- ✅ Sistema de alertas funcionando
|
||||||
|
|
||||||
|
### 10.6 Fase 5: Scale & Polish (Semanas 14-16)
|
||||||
|
|
||||||
|
**Equipo A: Billing & Plans**
|
||||||
|
- Integración Stripe/Conekta
|
||||||
|
- Planes y precios
|
||||||
|
- Trial, upgrade/downgrade
|
||||||
|
- Facturación CFDI
|
||||||
|
|
||||||
|
**Equipo B: Admin & Settings**
|
||||||
|
- Gestión usuarios, roles
|
||||||
|
- Multi-RFC, presupuestos
|
||||||
|
- Reportes programados
|
||||||
|
|
||||||
|
**Equipo C: API & Webhooks**
|
||||||
|
- API REST documentada
|
||||||
|
- API keys, rate limiting
|
||||||
|
- Webhooks salientes
|
||||||
|
|
||||||
|
**Equipo D: QA & Launch**
|
||||||
|
- Testing E2E
|
||||||
|
- Performance, security
|
||||||
|
- Bug fixes, landing page
|
||||||
|
- Deploy producción
|
||||||
|
|
||||||
|
**Entregables**:
|
||||||
|
- ✅ Sistema de pagos funcionando
|
||||||
|
- ✅ API documentada
|
||||||
|
- ✅ Plataforma lista para producción
|
||||||
|
|
||||||
|
### 10.7 Hitos Clave
|
||||||
|
|
||||||
|
| Semana | Hito |
|
||||||
|
|--------|------|
|
||||||
|
| 2 | Auth + Multi-tenant funcionando |
|
||||||
|
| 6 | MVP con SAT + Dashboard + Métricas Core |
|
||||||
|
| 10 | 5 integraciones + Métricas completas |
|
||||||
|
| 13 | Reportes con IA + Alertas |
|
||||||
|
| 16 | **LAUNCH** - Plataforma en producción |
|
||||||
|
|
||||||
|
### 10.8 Recursos Estimados
|
||||||
|
|
||||||
|
- 4-5 desarrolladores full-stack
|
||||||
|
- 1 diseñador UI/UX (parcial)
|
||||||
|
- 1 QA engineer (desde semana 10)
|
||||||
|
- Claude Code como multiagente para acelerar
|
||||||
|
|
||||||
|
### 10.9 Dependencias Externas
|
||||||
|
|
||||||
|
- API DeepSeek (cuenta y créditos)
|
||||||
|
- Procesador de pagos (Stripe/Conekta)
|
||||||
|
- Acceso APIs sistemas contables para testing
|
||||||
|
- Servidor Windows para agente (desarrollo)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Apéndices
|
||||||
|
|
||||||
|
### A. Glosario
|
||||||
|
|
||||||
|
| Término | Definición |
|
||||||
|
|---------|------------|
|
||||||
|
| CFDI | Comprobante Fiscal Digital por Internet |
|
||||||
|
| FIEL | Firma Electrónica Avanzada (e.firma del SAT) |
|
||||||
|
| MRR | Monthly Recurring Revenue |
|
||||||
|
| ARR | Annual Recurring Revenue |
|
||||||
|
| CAC | Customer Acquisition Cost |
|
||||||
|
| LTV | Lifetime Value |
|
||||||
|
| EBITDA | Earnings Before Interest, Taxes, Depreciation, Amortization |
|
||||||
|
| CxC | Cuentas por Cobrar |
|
||||||
|
| CxP | Cuentas por Pagar |
|
||||||
|
|
||||||
|
### B. Referencias
|
||||||
|
|
||||||
|
- Repositorio Horux360: https://git.consultoria-as.com/consultoria-as/Horux360
|
||||||
|
- Monthly.la: https://monthly.la
|
||||||
|
- DeepSeek API: https://platform.deepseek.com
|
||||||
|
- SAT Web Services: https://www.sat.gob.mx
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Documento aprobado para implementación**
|
||||||
|
|
||||||
|
*Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>*
|
||||||
48
package.json
Normal file
48
package.json
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "horux-strategy",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "CFO Digital para Empresas Mexicanas - Plataforma de inteligencia financiera",
|
||||||
|
"author": "HORUX360",
|
||||||
|
"license": "UNLICENSED",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=20.0.0",
|
||||||
|
"pnpm": ">=8.0.0"
|
||||||
|
},
|
||||||
|
"packageManager": "pnpm@8.15.0",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "turbo run dev",
|
||||||
|
"build": "turbo run build",
|
||||||
|
"start": "turbo run start",
|
||||||
|
"test": "turbo run test",
|
||||||
|
"test:watch": "turbo run test:watch",
|
||||||
|
"lint": "turbo run lint",
|
||||||
|
"lint:fix": "turbo run lint:fix",
|
||||||
|
"format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"",
|
||||||
|
"clean": "turbo run clean && rm -rf node_modules",
|
||||||
|
"db:migrate": "pnpm --filter @horux/database migrate",
|
||||||
|
"db:migrate:dev": "pnpm --filter @horux/database migrate:dev",
|
||||||
|
"db:seed": "pnpm --filter @horux/database seed",
|
||||||
|
"db:studio": "pnpm --filter @horux/database studio",
|
||||||
|
"typecheck": "turbo run typecheck",
|
||||||
|
"prepare": "husky install"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^20.11.0",
|
||||||
|
"eslint": "^8.56.0",
|
||||||
|
"husky": "^9.0.0",
|
||||||
|
"lint-staged": "^15.2.0",
|
||||||
|
"prettier": "^3.2.0",
|
||||||
|
"turbo": "^2.0.0",
|
||||||
|
"typescript": "^5.3.0"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.{ts,tsx,js,jsx}": [
|
||||||
|
"eslint --fix",
|
||||||
|
"prettier --write"
|
||||||
|
],
|
||||||
|
"*.{json,md}": [
|
||||||
|
"prettier --write"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
3
pnpm-workspace.yaml
Normal file
3
pnpm-workspace.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
packages:
|
||||||
|
- "apps/*"
|
||||||
|
- "packages/*"
|
||||||
38
turbo.json
Normal file
38
turbo.json
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://turbo.build/schema.json",
|
||||||
|
"globalDependencies": ["**/.env.*local"],
|
||||||
|
"pipeline": {
|
||||||
|
"build": {
|
||||||
|
"dependsOn": ["^build"],
|
||||||
|
"outputs": ["dist/**", ".next/**", "!.next/cache/**"]
|
||||||
|
},
|
||||||
|
"dev": {
|
||||||
|
"cache": false,
|
||||||
|
"persistent": true
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"dependsOn": ["build"]
|
||||||
|
},
|
||||||
|
"test": {
|
||||||
|
"dependsOn": ["build"],
|
||||||
|
"outputs": ["coverage/**"]
|
||||||
|
},
|
||||||
|
"test:watch": {
|
||||||
|
"cache": false,
|
||||||
|
"persistent": true
|
||||||
|
},
|
||||||
|
"lint": {
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
"lint:fix": {
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
"typecheck": {
|
||||||
|
"dependsOn": ["^build"],
|
||||||
|
"outputs": []
|
||||||
|
},
|
||||||
|
"clean": {
|
||||||
|
"cache": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user