Agentic Trading Lab
에이전트와 대화하고, 거래 아이디어를 테스트하며, 코드 없이 실제 시장 데이터에 AI 트레이딩 에이전트를 적용
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Pagina web para los seguros de salud mejores de chile
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Plataforma B2C de comparación de planes de salud (Isapres) en Chile. Mobile-First · Data-Driven · 100% Gratuito.
Eligetuplan compara +1.800 planes vigentes de las 7 Isapres abiertas de Chile usando un algoritmo de scoring multi-objetivo que pondera asequibilidad, cobertura, valor y perfil del usuario. El resultado se filtra intencionalmente a Consalud (sesgo de negocio documentado) pero los percentiles se calculan contra el mercado completo, dando justificación cuantitativa transparente.
Flujo del usuario:
/) → Hero con nav sticky, feature rows con CTAs, slider de logos, stats section./comparar/isapres) → Catálogo con filtros avanzados por Isapre, modalidad, precio y cobertura./tu-mejor-plan) → Wizard de 3 pasos: plan actual → perfil → resultados inteligentes con alternativas data-driven./buscar) → Formulario de contacto + WhatsApp directo para Consalud.| Capa | Tecnología | Versión |
|---|---|---|
| Frontend | Next.js (App Router) + TypeScript | 16.2.1 |
| Estilos | Tailwind CSS v4 | Latest |
| Animaciones | Framer Motion | v12 |
| Iconos | Lucide React | v1 |
| Backend API | Python FastAPI | Latest |
| Base de Datos | Supabase (PostgreSQL) | Latest |
| Hosting (target) | Vercel + Render | — |
Eligetuplan/
├── .vscode/ # Config VS Code compartida
├── images/ # Assets fuente originales
├── logos/ # Logos fuente de Isapres
├── CLAUDE.md # Guía interna para IA
├── ARCHITECTURE.md # Arquitectura detallada
├── setup.ps1 # Script de inicio (Windows)
├── restart_test.ps1 # Script restart con hardening
│
├── test/ # 🛠️ Entorno de Desarrollo
│ ├── frontend/ # Next.js App
│ │ ├── app/
│ │ │ ├── page.tsx → Home (hero, features, stats)
│ │ │ ├── layout.tsx → Layout + footer + WhatsApp FAB
│ │ │ ├── globals.css → Estilos base + animaciones
│ │ │ ├── comparar/isapres/ → Catálogo de planes
│ │ │ ├── tu-mejor-plan/ → Wizard 3 pasos + resultados
│ │ │ ├── buscar/ → Lead capture
│ │ │ ├── como-funciona/ → Informativa
│ │ │ └── faq/ → Preguntas frecuentes
│ │ └── components/ui/ # Componentes reutilizables
│ │ ├── pulse-fit-hero.tsx → Hero dinámico
│ │ ├── site-header.tsx → Header sticky con scroll-reveal
│ │ ├── whatsapp-fab.tsx → FAB flotante WhatsApp
│ │ ├── contact-options.tsx → WhatsApp para Consalud / Form para otras
│ │ ├── lead-capture-form.tsx → Formulario de leads
│ │ └── infinite-slider.tsx → Carrusel infinito
│ │
│ ├── backend/ # FastAPI
│ │ ├── main.py → API completa con scoring
│ │ └── requirements.txt → Dependencias Python
│ │
│ └── database/ # SQL de Supabase
│ └── schema.sql → Schema completo + RLS
│
└── production/ # 🚀 Entorno de Producción (pendiente)
| Token | Valor | Uso |
|---|---|---|
| Verde oscuro | #0f514b | Fondos oscuros, header, footer |
| Verde acento | #14dcb4 | CTAs, badges, bordes activos, hover |
| Fondo neutro | #eef2f5 | Background general |
| Fondo claro | #f8fafc | Páginas internas |
| Font | Poppins | Sistema completo |
| Componente | Descripción |
|---|---|
SiteHeader | Header sticky con nav links animados. Se oculta en home hasta scroll > 120px. |
WhatsAppFab | FAB flotante esquina inferior derecha con ping animation. Visible en todas las páginas. |
ContactOptions | Botón WhatsApp para Consalud + formulario para otras Isapres. |
PulseFitHero | Hero reutilizable con logo, nav, título, subtítulo, CTAs y social proof. |
InfiniteSlider | Carrusel infinito de logos con hover-slow. |
/) — Hero con nav + CTAs, slider de 7 logos, 3 feature rows horizontales con CTAs, stats section (7 Isapres, 1854+ planes, 16 regiones, 100% gratis)./tu-mejor-plan) — Wizard 3 pasos. Paso 3: plan recomendado + alternativas inteligentes según preferencia, con justificación data-driven (reason_tag, percentiles, ahorro vs plan actual)./comparar/isapres) — Catálogo con filtros por Isapre, modalidad, precio, cobertura./buscar) — Lead capture form.4 columnas inspirado en tu7.cl: logo + descripción + íconos sociales, Isapres, Sitios de Interés, Contacto. Fondo #092e2a, disclaimer legal al fondo.
| Método | Ruta | Descripción |
|---|---|---|
GET | / | Bienvenida |
GET | /api/v1/health | Health check |
GET | /api/v1/plans-autocomplete | Autocompletar planes por Isapre |
POST | /api/v1/match-plan | Core: scoring multi-objetivo + recomendación |
POST /api/v1/match-planRequest:
{
"age": 30,
"income_clp": 1200000,
"dependents": 1,
"preferred_region": "rm",
"isapre": "consalud",
"preference": "balanced",
"limit": 6,
"current_price_uf": 3.5,
"current_hospital_coverage": 80.0,
"current_ambulatory_coverage": 65.0,
"sexo": "femenino",
"tipo": "pareja",
"sexo_pareja": "masculino",
"edad_pareja": 32,
"ingreso_pareja_clp": 800000,
"cargas": [{"sexo": "masculino", "edad": 5}]
}
Response (lista de PlanResponse):
[
{
"id": "uuid",
"name": "Plan Conecta Clásico",
"isapre_name": "Consalud",
"isapre_slug": "consalud",
"logo_url": "/logos/logo_consalud.png",
"price_uf": 2.14,
"match_score": 87.3,
"hospital_coverage": 85.0,
"ambulatory_coverage": 70.0,
"reason_tag": "mujer joven — con pareja — en Región Metropolitana — gran valor",
"savings_uf": -1.36,
"savings_clp": -54380,
"savings_pct": -38.9,
"coverage_diff_hosp_pp": 5,
"coverage_diff_amb_pp": 5,
"market_percentile_value": 92.1,
"market_percentile_coverage": 78.0,
"market_percentile_price": 65.0,
"market_total_plans": 1854,
"score_breakdown": {
"affordability": 82.0,
"coverage": 81.0,
"value": 92.1,
"extras": 55.0,
"weights": {"afford": 0.35, "coverage": 0.35, "value": 0.25, "extras": 0.05}
}
}
]
Cada plan recibe un composite score ponderado por la preferencia del usuario:
| Preferencia | Asequibilidad | Cobertura | Valor | Extras |
|---|---|---|---|---|
savings | 55% | 20% | 20% | 5% |
balanced | 35% | 35% | 25% | 5% |
coverage | 15% | 55% | 25% | 5% |
savings: Solo planes más baratos que el plan actual del usuariocoverage: Solo planes con cobertura combinada superior al plan actualbalanced: Sin filtro adicional, ordena por composite scoreSe filtran a Consalud, se ordenan según preferencia, y se devuelven hasta limit planes con percentiles de mercado, deltas vs plan actual, y reason_tag personalizado.
Supabase (PostgreSQL) con RLS habilitado. Tablas: isapres, planes, clinicas, plan_clinica. Los planes se sync desde SIS usando scripts/sync_sis.py.
Logo de Esencial actualizado en la tabla isapres (logo_url = '/logos/esencial.png').
.\setup.ps1 # Inicia backend + frontend
.\restart_test.ps1 # Reinicia (con -Stop para detener)
Frontend:
cd test/frontend
npm install
npm run dev # http://localhost:3000
npm run build # producción
Backend:
cd test/backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
python main.py # http://localhost:8000
# Swagger: http://localhost:8000/docs
| Variable | Dónde | Visibilidad |
|---|---|---|
NEXT_PUBLIC_API_URL | test/frontend/.env.local | Pública (bundle) |
SUPABASE_URL | test/backend/.env | Pública-ish |
SUPABASE_KEY (anon) | test/backend/.env | Anon, RLS la restringe |
SUPABASE_SERVICE_ROLE_KEY | test/backend/.env | SECRETA — solo para scripts manuales |
SIS_PERIOD | test/backend/.env | Pública |
Regla: Todo lo que empieza con
NEXT_PUBLIC_termina en el bundle del cliente. Nunca poner secrets ahí.
test/. No editar production/ mientras una feature está en QA.production/ solo tras validación manual del feature completo.test/database/migrations/ aplicadas manualmente en el SQL Editor de Supabase.CLAUDE.md tiene convenciones y gotchas para trabajo con IA.Última actualización: Abril 2026 — v2.0