Código fuente para el proyecto de chatbot médico IA de la Universidad Técnica de Babahoyo
Find a file
2026-05-26 13:38:22 -05:00
.claude implement analytics 2025-11-11 00:41:09 -05:00
prisma implement data consent form 2025-12-12 13:44:20 -05:00
public readme glow up + logo verde porque el azul ya no pega 2026-05-05 16:44:41 -05:00
scripts actualizar scripts que se supone que debí haber borrado hace SIGLOS 2026-05-12 14:16:07 -05:00
src holy spaghetti 2026-05-26 13:38:22 -05:00
uploads/photos_profile new start for sure 2025-10-07 15:36:31 -05:00
.dockerignore agregar cositas para montar esto en docker mi gente 2026-05-06 16:22:14 -05:00
.gitignore holy spaghetti 2026-05-26 13:38:22 -05:00
AGENTS.md add checks in middleware, fix chat leaks via localstorage 2026-05-01 21:56:09 -05:00
docker-compose.yml agregar cositas para montar esto en docker mi gente 2026-05-06 16:22:14 -05:00
Dockerfile agregar cositas para montar esto en docker mi gente 2026-05-06 16:22:14 -05:00
ecosystem.config.js new start for sure 2025-10-07 15:36:31 -05:00
env.sample.txt only use utb api for auth 2025-10-07 17:59:17 -05:00
eslint.config.mjs new start for sure 2025-10-07 15:36:31 -05:00
next.config.ts agregar cositas para montar esto en docker mi gente 2026-05-06 16:22:14 -05:00
package-lock.json completely overhaul the chat system because nothing worked 2026-05-20 15:13:27 -05:00
package.json completely overhaul the chat system because nothing worked 2026-05-20 15:13:27 -05:00
postcss.config.js fase 4: THE PURGE 2. deleted tailwind config, cleaned postcss, stripped globals.css, nuked cn() + utils.ts, uninstalled tailwindcss autoprefixer tailwind-merge clsx lucide-react 2026-05-03 03:58:00 -05:00
proxy.ts middleware is proxy now, next 16 thing 2026-05-02 17:15:15 -05:00
README.md actualizar scripts que se supone que debí haber borrado hace SIGLOS 2026-05-12 14:16:07 -05:00
tsconfig.json bump to next 16, react 19.2, add mantine 9 + postcss config 2026-05-02 17:15:09 -05:00

Ani Assistant

Plataforma de asistente médico virtual para la Universidad Técnica de Babahoyo (UTB). Sistema de gestión de citas, expedientes médicos, registro diario de salud y asistente virtual con IA para pacientes.

🚀 Características

  • Roles de Usuario: ADMIN (gestión total), DOCTOR (pacientes, citas, expedientes), PATIENT (chat con IA, historial, citas)
  • Chat inteligente con IA (OpenRouter via OpenAI SDK) en modalidades médica y psicológica
  • Sistema de citas con calendario, videollamadas Jitsi y notas de consulta
  • Registro diario de síntomas, estado de ánimo, energía y sueño
  • Reportes médicos en PDF con generación automática desde chat
  • Analíticas con gráficos (recharts) y dashboard
  • Autenticación dual: API UTB (estudiantes) + base de datos local (doctores/admins)
  • Tema claro/oscuro con Mantine

🛠 Tech Stack

Capa Tecnología
Framework Next.js 16 (App Router, Turbopack)
Lenguaje TypeScript 5 (strict)
UI Mantine UI v9, @tabler/icons-react, Tailwind CSS
Base de Datos PostgreSQL 14+
ORM Prisma 6
Autenticación NextAuth v4 (credentials, JWT)
AI Chat OpenAI SDK + OpenRouter (deepseek)
PDF @react-pdf/renderer, jspdf + html2canvas
Gráficos recharts
Fechas date-fns, dayjs
Notificaciones @mantine/notifications (sonner-style)
Video Jitsi Meet

📋 Prerrequisitos

  • Node.js 18.18+
  • PostgreSQL 14+
  • npm

⚙️ Configuración de Entorno

  1. Copia el archivo de ejemplo:

    cp env.sample.txt .env
    
  2. Configura las variables críticas en .env:

    • DATABASE_URL: Cadena de conexión a PostgreSQL
    • NEXTAUTH_SECRET: Cadena aleatoria para firmar JWT
    • OPENROUTER_API_KEY: API Key para el chat de IA
    • UTB_API_APP_ID y UTB_API_APP_TOKEN: Credenciales API UTB (autenticación externa)

💻 Desarrollo Local

  1. Instalar dependencias:

    npm install
    
  2. Configurar base de datos:

    # Sincronizar esquema con la DB (solo desarrollo)
    npm run db:push
    
    # (Opcional) Crear usuarios de prueba
    npm run db:setup
    
  3. Iniciar servidor de desarrollo:

    npm run dev
    

    Visita http://localhost:3000.

🚀 Producción

⚠️ IMPORTANTE: Sigue estos pasos para evitar pérdida de datos.

  1. Instalar dependencias:

    npm ci
    
  2. Migraciones de Base de Datos: En producción, NUNCA uses db:push. Usa migrate deploy.

    npm run db:deploy
    
  3. Construir la aplicación:

    npm run build
    
  4. Iniciar servidor:

    npm start
    

📜 Scripts Disponibles

Comando Propósito
npm run dev Entorno de desarrollo (Turbopack)
npm run build Compilar para producción
npm run start Iniciar servidor producción
npm run lint ESLint
npm run db:push Sincronizar esquema (dev rápido)
npm run db:migrate Crear migración (dev)
npm run db:deploy Aplicar migraciones (prod)
npm run db:reset Resetear base de datos
npm run db:studio Prisma Studio GUI
npm run db:setup Seed interactivo / batch para crear usuarios
npm run db:seed Alias de db:setup
npm run check-env Validar variables de entorno
npm run test:openrouter Probar conexión OpenRouter
npm run test:api Probar endpoints de API
npm run cleanup-images Normalizar imágenes de perfil
npm run verify-setup Verificar directorios uploads

⚠️ Disclaimer

Este software es para fines educativos y demostrativos. No debe ser utilizado como sustituto de consejo médico profesional, diagnóstico o tratamiento.