尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证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