PharmaGuide Backend v1.7.0 es una API REST avanzada con inteligencia artificial integrada y sistema de cache optimizado, diseñada para estudiantes de Química Farmacéutica. Proporciona información automatizada sobre medicamentos mediante IA y herramientas inteligentes de aprendizaje.
Versión actual v1.7.0: Sistema completo de Identificación del Fármaco
Ver documentación de versión →
📖 Centro de Documentación - Documentación completa organizada por categorías
- Arquitectura del Sistema - Diseño modular y patrones
- Sistema de IA - Sistema de inteligencia artificial
- Cache Redis - Sistema de cache optimizado
- Versión 1.7.0 - Identificación del Fármaco
- API Reference - Endpoints y ejemplos de uso
- Características Principales
- Stack Tecnológico
- Inicio Rápido
- Configuración
- API y Swagger
- 🧪 Scripts Disponibles
- 🤝 Contribución
- Sistema modular de IA para información médica automatizada
- Contraindicaciones, Indicaciones, Mecanismo de Acción
- Clase Terapéutica y Dosificación
- Arquitectura escalable para nuevas funcionalidades
- Cache específico por funcionalidad
- TTL de 7 días configurado
- Degradación elegante sin Redis disponible
- Consultas optimizadas
- ** Arquitectura escalable** con Express.js y TypeScript
- ** Validación completa** con middleware personalizado
- ** Documentación automática** con Swagger/OpenAPI 3.0
- ** Seguridad avanzada** con JWT y rate limiting
- ** Planes de estudio adaptativos** por usuario
- ** Gestión completa de medicamentos** con información detallada
- 👥 Sistema de usuarios y roles con permisos granulares
- ** Seguimiento de progreso** académico personalizado
- Node.js
>= 18.x- Runtime de JavaScript - Express.js
^5.1.0- Framework web rápido y minimalista - TypeScript
^5.8.3- Tipado estático y desarrollo moderno - Prisma ORM
^6.8.2- ORM moderno para TypeScript y Node.js - PostgreSQL
>= 14- Base de datos relacional robusta
- Google Gemini AI
^0.21.0- Procesamiento de información médica - Gemini 2.0 Flash - Modelo optimizado para contenido farmacéutico
- Redis - Cache distribuido y optimización de consultas
- ioredis - Cliente Redis avanzado para Node.js
- JWT
^9.0.2- Autenticación basada en tokens - bcrypt
^5.1.1- Hash seguro de contraseñas - Rate Limiting - Protección contra abuso de API
## Inicio Rápido
### Instalación en 3 Pasos
```bash
# 1. Clonar e instalar
git clone https://github.com/aldairg-dev/pharma-guide-backend.git
cd pharma-guide-backend && npm install
# 2. Configurar base de datos
cp .env.example .env # Editar con tus credenciales
npx prisma migrate dev
# 3. Iniciar servidor
npm run dev
** ¡Listo! API ejecutándose en http://localhost:8080**
- Node.js >= 18.x
- PostgreSQL >= 14 (o usar Docker)
- Redis (opcional, para cache - se puede omitir inicialmente)
# Base de Datos
DATABASE_URL="postgresql://user:pass@localhost:5432/pharmaguide"
# JWT
JWT_SECRET="tu_jwt_secret_super_seguro"
JWT_EXPIRATION="86400"
# IA (Opcional - para funcionalidades de IA)
GEMINI_API_KEY="tu_api_key_de_gemini"
# Redis (Opcional - para cache optimizado)
REDIS_HOST="localhost"
REDIS_PORT="6379"
# Configuración del servidor
PORT=3000
NODE_ENV=development-
Configura la base de datos:
# Generar cliente Prisma npx prisma generate # Ejecutar migraciones npx prisma migrate dev --name init # Poblar datos iniciales npx prisma db seed
-
Inicia el servidor:
npm run dev
- Desarrollo: http://localhost:8080/api-docs
- Swagger JSON: http://localhost:8080/swagger.json
// Inteligencia Artificial
GET /api/drugs/:id/contraindications // Contraindicaciones con IA
GET /api/drugs/:id/therapeutic-class // Clase terapéutica con IA
// Endpoints Tradicionales
POST /api/access/pharma-guide/register // Registro
POST /api/access/pharma-guide/login // Login
GET /api/pharma-guide/users // Usuarios (Auth)
GET /api/pharma-guide/drug // Medicamentos
GET /api/pharma-guide/study-plans // Planes de estudio📖 Referencia completa de API: Ver documentación de endpoints →
# Desarrollo
npm run dev # Servidor con hot reload
npm run build # Compilar TypeScript
npm start # Producción
# 🗄️ Base de Datos
npx prisma generate # Generar cliente
npx prisma studio # Interfaz visual
npx prisma migrate dev # Aplicar migraciones
# Utilidades
npm run lint # Linter ESLint
npm run test # Ejecutar tests- Fork el repositorio
- Crea tu rama:
git checkout -b feature/nueva-funcionalidad - Commitea:
git commit -m 'feat: agregar nueva funcionalidad' - Push:
git push origin feature/nueva-funcionalidad - Abre un Pull Request
- Conventional Commits:
feat:,fix:,docs:, etc. - TypeScript con tipos estrictos
- Tests para nuevas funcionalidades
- Documentación actualizada
Guía completa: Ver guía de contribución →
- Inteligencia Artificial con Gemini AI
- Cache Redis optimizado por funcionalidades
- Contraindicaciones y Clase Terapéutica automatizadas
- Arquitectura modular escalable
Ver changelog completo: Historial de versiones →
- 🐛 Issues: GitHub Issues
- 📧 Email: aldairgguer@gmail.com
- 👨 Desarrollador: @aldairg-dev