← Memory
logopeda-monitor.md
# Logopeda Monitor (Borja Panel)
## Info General
- **URL:** https://borja.alexamigo.com
- **Auth:** HTTP Basic (ver `/etc/nginx/.htpasswd_borja`)
- **VPS:** `/var/www/borja-panel/`
- **Nginx:** `/etc/nginx/sites-enabled/borja-alexamigo`
- **SSL:** Certbot, certificado en `/etc/letsencrypt/live/borja.alexamigo.com/`
- **Stack:** Python collector + HTML/JS frontend (Chart.js) + JSON data files
- **Cliente:** Borja Tormos (logopeda Barcelona)
## Estructura
```
/var/www/borja-panel/
├── index.html # Dashboard dark theme (37KB, inline CSS/JS)
├── data/
│ ├── competitors.json # Datos scrapeados de blogs
│ └── analytics.json # GA4 data (placeholder vacío)
└── collector/
├── config.py # 36 blogs organizados por país
├── collect.py # Scraper: WP REST API → RSS → Sitemap
└── __pycache__/
```
## Proyecto Local
- `C:\Users\alexa\Desktop\PROYECTOS\LogopedaMonitor\` — copias locales config.py, collect.py
- `_modulards_ref/` — código original modulards para referencia
## Cómo Funciona
- `collect.py` intenta 3 métodos por blog: WP REST API, RSS feed, Sitemap
- Escribe `data/competitors.json` con posts por país
- Frontend lee JSON y renderiza cards con actividad, filtros por país, gráficos
- Data path: `BASE_DIR = parent dir` → escribe en `/var/www/borja-panel/data/`
## Ejecución
```bash
cd /var/www/borja-panel/collector && python3 collect.py
```
## Estado: PENDIENTE DE LIMPIEZA
### Blogs a QUITAR (basura o no scrapeables):
1. `speechtherapy.co.uk` — sitemap devuelve "Page 37", "Styled", no posts
2. `logosik.cz` — sitemap basura
3. `terapeutadafala-porto.pt` — blog muerto (posts de 2021)
4. `teachmetotalk.com` — no scrapeable (bloquea API/RSS/sitemap)
5. `diariodiunalogopedista.it` — no scrapeable
6. `emilymackie.com.au` — no scrapeable
7. `agrowingunderstanding.com.au` — no scrapeable
8. `lorthoenplusclaire.com` — no scrapeable
### Blogs con datos sucios (filtrar mejor):
- `speechietrish.com` — incluye "Blog", "Resources" como posts (sitemap)
- `rachelmadel.com` — mezcla productos/recursos con posts (sitemap)
- `annadeeslp.com` — incluye "Homepage 1" (sitemap)
### Pendiente:
- [ ] Eliminar 8 blogs del config.py
- [ ] Mejorar filtro sitemap para excluir páginas tipo "Blog", "Resources", "Homepage"
- [ ] Re-ejecutar scan después de limpieza
- [ ] Configurar cron diario: `0 6 * * * cd /var/www/borja-panel/collector && python3 collect.py`
- [ ] Decidir si filtrar "vendedoras de recursos" USA o mantenerlas
- [ ] Registrar en Jarvis tools.py
## Blogs Activos Confirmados (28 tras limpieza)
### USA (11)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Shannon Lisowe | speechymusings.com | WP API | 10 |
| Maureen Wilson | thespeechbubbleslp.com | WP API | 10 |
| Carole Zangari | praacticalaac.org | WP API | 10 |
| Jessica Cassity | thedigitalslp.com | WP API | 10 |
| Tatyana Elleseff | smartspeechtherapy.com | WP API | 10 |
| Trish Friedlander | speechietrish.com | Sitemap | 10* |
| Rachel Madel | rachelmadel.com | Sitemap | 10* |
| Jenna Rayburn Kirk | thespeechroomnews.com | WP API | 10 |
| Carrie Clark | speechandlanguagekids.com | WP API | 10 |
| Sarah Wu | speechisbeautiful.com | WP API | 10 |
| Lauren LaCour Haines | busybeespeech.com | WP API | 6 |
### UK (1)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Sonja McGeachie | londonspeechandfeeding.co.uk | WP API | 10 |
### España (4)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Estela Bayarri | creciendoconlaspalabras.com | WP API | 10 |
| Myriam Kremer | myriamkremerlogopeda.com | WP API | 10 |
| Carlos Sesmero | quesecorralavoz.es | WP API | 3 |
| Eliana Fredes | oirpensarhablar.com | WP API | 10 |
### Italia (2)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Silvia Lusetti | logopedista.it | WP API | 10 |
| Elena Baddoo | elenabaddoologopedista.it | WP API | 10 |
### Alemania (2)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Alexander Fillbrandt | alexanderfillbrandt.de | WP API | 10 |
| Jörg Abel | logoabel.de | WP API | 10 |
### Francia (2)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Delphine Lavoix | orthonenette.fr | WP API | 10 |
| Marie Corre | systemedorthophonie.fr | WP API | 10 |
### Polonia (3)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Paulina Mistal-Drezno | panilogopedyczna.pl | WP API | 10 |
| Katarzyna Czyżycka | blog.centrumgloska.pl | WP API | 10 |
| Hubert Krzyżowski | projektowanie-mowy.pl | WP API | 3 |
### Australia (1)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Rebecca Reinking | adventuresinspeechpathology.com | WP API | 10 |
### Irlanda (1)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Aoife Tierney | sparkingspeech.com | WP API | 10 |
### Canadá (1)
| Nombre | Dominio | Método | Posts |
|--------|---------|--------|-------|
| Anna Dee | annadeeslp.com | Sitemap | 10* |
*Sitemap = datos más sucios, pueden incluir páginas no-blog
## Referencia: Modulards (modelo original)
- URL: modulards.alexamigo.com
- FTP: `modulards.alexamigo.com/` en tumejorfisico.com
- Stack: PHP + MySQL (config.php, scraper.php, api.php, index.html)
- Diferencia: modulards usa PHP+MySQL en hosting compartido, borja panel usa Python+JSON en VPS
## Investigación Completa de Logopedas
Se investigaron 72+ logopedas individuales en 16 países. Los 36 seleccionados tenían blog activo confirmado (2025-2026). Tras scraping real, 28 funcionan. Ver conversación original para lista completa de candidatos descartados por país.