Files
FarmaFinder/apps/parapharmacy-api
Antoni Nuñez Romeu fa74a6e060
Run Tests on Branches / Detect Changes (push) Successful in 13s
Run Tests on Branches / Backend Tests (push) Failing after 16s
Run Tests on Branches / Frontend Tests (push) Failing after 16s
Run Tests on Branches / Frontend Mobile Tests (push) Failing after 17s
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
fix: filter scraper results by search query
The scraper was extracting ALL products from the page including
navigation menu items. Now it filters products to only include
those that contain the search query in their name.

Before: Found 47 products (mostly navigation items)
After: Found 2 Capricare products (filtered by query)
2026-07-16 17:03:21 +02:00
..

FarmaFinder Parapharmacy API

Microservicio para productos de parafarmacia de múltiples tiendas españolas.

Arquitectura

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   N8N Workflows │────▶│  Parapharmacy    │────▶│    MongoDB      │
│   (Scraper)     │     │  API (Express)   │     │                 │
└─────────────────┘     └────────┬─────────┘     └─────────────────┘
                                 │
                                 ▼
                        ┌─────────────────┐
                        │  FarmaFinder    │
                        │  Backend        │
                        └─────────────────┘

Endpoints

Método Ruta Descripción
GET /api/products/search?q=term Buscar productos
GET /api/products/:id Detalle de producto
GET /api/products Listar productos
POST /api/products Crear producto
POST /api/products/bulk Crear/actualizar múltiples
PUT /api/products/:id Actualizar producto
DELETE /api/products/:id Eliminar producto
GET /api/products/categories Listar categorías
GET /api/products/brands Listar marcas
GET /api/sources Fuentes configuradas
GET /api/health Health check
GET /api/docs Swagger UI

Desarrollo

Requisitos

  • Node.js 20+
  • MongoDB 7+

Instalación

cd apps/parapharmacy-api
npm install

Ejecutar

# Desarrollo
npm run dev

# Producción
npm start

Variables de Entorno

PORT=3002
MONGODB_URI=mongodb://localhost:27017/parapharmacy
CORS_ORIGIN=http://localhost:3000

Docker

# Construir imagen
docker build -t farmafinder-parapharmacy-api .

# Ejecutar
docker run -p 3002:3002 -e MONGODB_URI=mongodb://host:27017/parapharmacy farmafinder-parapharmacy-api

Fuentes de Scraping

Fuente URL Estado
Promofarma promofarma.com ✅
Pharmarket pharmarket.es 🔄 Pendiente
DocMorris docmorris.es 🔄 Pendiente
1001Farma 1001farma.net 🔄 Pendiente
Primor primor.eu 🔄 Pendiente
MiFarma mifarma.es 🔄 Pendiente

Schema MongoDB

{
  name: String,           // Nombre del producto
  brand: String,          // Marca
  category: String,       // Categoría
  subcategory: String,    // Subcategoría
  description: String,    // Descripción
  image_url: String,      // URL imagen
  source_url: String,     // URL tienda original
  price: Number,          // Precio actual
  original_price: Number, // Precio anterior
  source: String,         // Fuente
  source_product_id: String,
  available: Boolean,
  rating: Number,
  review_count: Number,
  scraped_at: Date
}

Tests

npm test

Swagger

Documentación disponible en: http://localhost:3002/api/docs