Comunicació FrontEnd i BackEnd
🧠 Justificació i reflexió: L'ecosistema del XatBot
He dissenyat una arquitectura completa client-servidor on cada component té un paper vital per al funcionament del XatBot. Aquest ecosistema està format per:
- Widget (FrontEnd): Interfície d'usuari integrada al WordPress. Captura missatges i mostra respostes de manera intuïtiva i responsive.
- Flask (BackEnd): Servidor Python que actua com a pont segur entre el FrontEnd i la IA. Gestiona les peticions, valida les dades i retorna les respostes.
- JSON (Base de dades local): Conté la informació extreta del WordPress, permetent que la IA respongui amb coneixement personalitzat.
- ngrok (Túnel): Exposa el servidor local de Colab a Internet sense necessitat de servidors de pagament.
- Gemini API: Processa el llenguatge natural i genera respostes intel·ligents basades en el context proporcionat.
La gestió d'errors ha estat prioritària: missatges amigables, reintents automàtics i timeouts per garantir una bona UX. La seguretat de les claus API és una responsabilitat ètica innegociable, gestionada als Secrets de Colab.
📈 Millores implementades respecte a una versió bàsica
📄 Versió bàsica
- Flask bàsic
- Gestió d'errors simple
- CSS bàsic
- Secrets sense validació
⭐ Versió millorada (Tarik Aberdane)
- ✅ Flask amb CORS i gestió avançada d'errors
- ✅ Timeouts configurats i reintents automàtics
- ✅ CSS amb variables CSS i disseny responsive
- ✅ Secrets de Colab amb validació i try/except
- ✅ Missatges amb timestamp i ID únic
- ✅ Missatges d'error amigables per a l'usuari
1. Arquitectura i flux de dades Robustesa + Gestió d'errors
Connexió estable entre FrontEnd i BackEnd mitjançant ngrok
He implementat una arquitectura client-servidor completa on el widget del WordPress es comunica amb el servidor Flask via ngrok. El missatge viatja del FrontEnd al BackEnd, és processat per Gemini i la resposta torna pel mateix camí.
📡 Flux de dades client-servidor
WordPress
Túnel segur
Servidor Python
API
El missatge viatja del WordPress al servidor Flask via ngrok, és processat per Gemini, i la resposta torna pel mateix camí en menys de 3 segons.
2. Integració del Widget a la pàgina web Coherent + Responsive
Widget totalment integrat i coherent amb el disseny del lloc
He desenvolupat el widget amb classes CSS pròpies (prefix tariks-) per evitar conflictes amb el tema de WordPress, i l'he integrat mitjançant el plugin WPCode.
🔌 Integració a WordPress amb WPCode
He usat el plugin WPCode per inserir el codi del widget sense modificar els fitxers del tema.
✓ CSS encapsulat amb classes úniques (prefix tariks-) per evitar conflictes.
✓ JavaScript amb gestió d'errors i timeout de 30 segons.
✓ Responsive: pantalla completa a mòbil, flotant a escriptori.
3. Seguretat de les claus API Protegides al BackEnd
Les claus de Gemini i ngrok estan protegides als Secrets de Colab
Per protegir les claus API he usat el sistema de Secrets de Google Colab, que les emmagatzema de manera segura i les fa accessibles només durant l'execució del quadern.
📋 Secrets configurats a Colab
• GOOGLE_API_KEY → Clau d'accés a Gemini API
• NGROK_TOKEN → Token d'autenticació per a ngrok
✓ Les claus NO apareixen al codi visible.
✓ Es poden fer captures sense exposar informació sensible.
✓ Validació amb try/except: l'script no s'executa si les claus fallen.
Evidències – Captures i visualitzacions del procés
Documentació visual de cada component de l'arquitectura
Servidor Flask + ngrok en execució
✓URL pública ngrok generada correctament.
✓Peticions POST rebudes i processades.
Widget integrat al WordPress
✓Widget flotant coherent amb el disseny del lloc.
✓Responsive: s'adapta a mòbil i escriptori.
Secrets de Colab configurats
✓GOOGLE_API_KEY i NGROK_TOKEN protegits.
✓Claus ocultes — no apareixen al codi visible.
Flux d'una petició real
✓Petició POST rebuda i processada en 1,24 s.
✓Resposta JSON amb success, message i timestamp.
Gestió d'errors al Widget
✓Timeout i HTTP 500 gestionats amb missatges amigables.
✓L'usuari sempre rep una resposta clara.
Integració via WPCode al WordPress
✓Codi inserit sense modificar fitxers del tema.
✓Plugin WPCode: segur i fàcil de desactivar.
✅ Compliment integral de la rúbrica
tariks-), responsive, col·lapsable, integrat via WPCode.
Comunicació FrontEnd i BackEnd · Flask · ngrok · Gemini API · WordPress
