Codi de Python
# =============================================================================
# # ==============================================================
# 1. INSTAL·LACIÓ DE LLIBRERIES
# ==============================
# Instal·lem les eines necessàries per a la IA, el servidor web i el túnel
!pip install -U google-genai flask-cors pyngrok
import os, time, json
from flask import Flask, request, jsonify
from flask_cors import CORS
from pyngrok import ngrok
from google import genai
from google.colab import userdata
# ==============================================================
# 2. CONFIGURACIÓ DE CREDENCIALS
# ==============================
# Agafem les claus guardades a la icona de la clau (🔑) de Colab
GOOGLE_API_KEY = userdata.get("GOOGLE_API_KEY")
NGROK_TOKEN = userdata.get("token_ngrok")
# Creem el client de Google per poder parlar amb la IA
client = genai.Client(api_key=GOOGLE_API_KEY)
# ==============================================================
# 3. CONFIGURACIÓ DE LA IA (PERSONALITAT)
# ==============================
# Definim com s'ha de comportar el bot i quina és la seva feina
system_instruction = """
Ets l'assistent virtual oficial de la LAN Party EcoTech 2026.
La teva missió és ajudar els participants amb dubtes tècnics i organitzatius.
Informació CRÍTICA de l'esdeveniment:
1. Ubicació: Els Costals, Castellbisbal.
2. Horari d'Inici: Divendres, 10 d'abril a les 18:00h.
3. Horari de Finalització: Diumenge, 12 d'abril a les 18:00h.
4. Xarxa: Cada taula té una connexió RJ45. La IP s'assigna per DHCP.
5. Sostenibilitat (EcoTech): Som una LAN residu zero. Prohibit el plàstic d'un sol ús.
6. Suport Tècnic: Qualsevol incidència de xarxa s'ha de reportar al HelpDesk.
To de veu: Tècnic (SMX), però amable i disposat a ajudar.
Ets un expert de Castellbisbal i vols que la LAN surti perfecta.
"""
# Iniciem la sessió de xat amb el model d'IA escollit
chat = client.chats.create(
model="gemini-2.5-flash", # El model d'IA més modern i ràpid
config=genai.types.GenerateContentConfig(
system_instruction=system_instruction, # Li donem les instruccions
temperature=0.7, # Creativitat (0.7 és equilibrat)
max_output_tokens=1000 # Límit de llargada de la resposta
)
)
# ==============================================================
# 4. CREACIÓ DEL SERVIDOR (BACKEND)
# ==============================
app = Flask(__name__) # Creem l'aplicació del servidor
CORS(app) # Permetem que webs externes (Google Sites) s'hi connectin
@app.route('/ask', methods=['POST', 'OPTIONS'])
def ask():
# Gestió de seguretat del navegador (CORS)
if request.method == 'OPTIONS':
return jsonify({"status": "ok"}), 200
try:
# Rebrem la pregunta que l'usuari escriu al xat del front-end
data = request.json
prompt = data.get("message", "").strip()
# Enviem la pregunta a la sessió de xat de Gemini
resposta = chat.send_message(prompt)
# Enviem la resposta de tornada al xat de la web
return jsonify({"reply": resposta.text.strip()})
except Exception as e:
# Si hi ha un error (com falta de quota), l'avisem per consola
print(f"⚠️ Error: {e}")
return jsonify({"reply": "Error de connexió amb la IA."}), 500
# ==============================================================
# 5. EXECUCIÓ I TÚNEL PÚBLIC
# ==============================
if __name__ == '__main__':
# Tanquem qualsevol procés anterior per evitar que el port estigui ocupat
os.system("fuser -k 5000/tcp")
time.sleep(1)
# Configurem i activem Ngrok per crear una URL pública (https://...)
ngrok.kill()
ngrok.set_auth_token(NGROK_TOKEN)
public_url = ngrok.connect(5000).public_url
# Mostrem la URL final que has de copiar al teu codi de Google Sites
print(f"\n" + "="*60)
print(f"✅ SERVIDOR ACTIU")
print(f"🌐 COPIA AQUESTA URL AL FRONT-END: {public_url}/ask")
print("="*60 + "\n")
# Posem en marxa el servidor de Flask
app.run(port=5000, host='0.0.0.0', debug=False, use_reloader=False)
app.run(port=5000)
Justificació
En aquest projecte hem utilitzat la intel·ligència artificial no com una drecera per acabar abans, sinó com un copilot de programació actiu. Ens ha servit per agilitzar el desenvolupament inicial d’estructures de codi, resoldre dubtes sintàctics de manera immediata i ajudar-nos a generar comentaris coherents per a cada bloc. No obstant això, hem hagut de fer una supervisió crítica de cada línia de codi generada, ja que la IA pot cometre errors de context, i és responsabilitat nostra com a tècnics entendre i validar el codi abans d’integrar-lo.
CHANGELOG.md
Aquí en el CHANGELOG.md del git hub és on guardem tots els canvis del codi per poder-nos organitzar i poder millorar el codi. Això serveix per quan algú canvi alguna cosa al codi guarda el seu canvi pel pròxim que el vulgui canviar o millorar sàpiga per on va.

Prompt utilitzats (Gemini)
Aquí li donem tota la informació a la IA perquè ens creei el codi. També li posem la base del codi que ha de tenir la qual ja teníem en el GitHub..

L’IA ens dona el codi, però ens dona alguns errors doncs li diem quin son els errors fins que ens els solucioni. Al principi no funcionava cap model així que vam provar amb el 1.5 flash el qual sí que funcionava.