Código fuente para el proyecto de chatbot médico IA de la Universidad Técnica de Babahoyo
Find a file
2026-07-17 03:26:52 -05:00
.claude implement analytics 2025-11-11 00:41:09 -05:00
prisma feat: add durationMinutes to appointments and specialties, update related logic 2026-07-17 03:20:35 -05:00
public arreglar los componentes de los reportes médicos porque no se migraron por completo a mantine puro 2026-06-22 13:14:59 -05:00
scripts feat: add durationMinutes to appointments and specialties, update related logic 2026-07-17 03:20:35 -05:00
src feat: add scheduling conflict validation for appointments and enhance error handling in modals 2026-07-17 03:26:52 -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 agregar separación de funciones y roles a los doctores para solo recibir citas dentro de su área 2026-07-02 14:39:44 -05:00
.npmrc actualizar next para mejorar vulnerabilidades criticas 2026-06-22 13:49:25 -05:00
AGENTS.md actualizar docs para que dejen de nukear prod 2026-07-17 01:20:38 -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 implementar sistema de envío de notificaciones por correo 2026-06-25 09:42:59 -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 feat(calendar): refactor calendar components and add appointment creation functionality 2026-07-17 01:16:27 -05:00
package.json refactor: clean up imports and improve date handling in appointment-related components 2026-07-17 01:37:06 -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 feat(api): add admin-override endpoint for aprobar/rechazar as admin 2026-07-17 02:16:55 -05:00
README.md actualizar docs para que dejen de nukear prod 2026-07-17 01:20:38 -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:

    # Aplicar migraciones
    npm run db:migrate
    
    # (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 npm run db: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.