🚀 Guia per al Desenvolupament del Sistema de Portes Obertes

L’objectiu d’aquest projecte és crear un servidor web autònom en Python que gestioni les reserves per a una jornada de portes obertes. El repte principal és no utilitzar cap framework extern (com Flask o Django), basant-nos exclusivament en la biblioteca estàndard.

🛠 Fonaments del Backend i Base de Dades

El cor del sistema es basa en una arquitectura lleugera però robusta:

  • Persistència de dades: Utilitzarem SQLite3 amb un esquema de dues taules relacionades: assistents (perfil de l’usuari) i horaris (gestió de cites).
  • Integritat referencial: És imprescindible habilitar PRAGMA foreign_keys = ON. Això permet aplicar un ON DELETE CASCADE, assegurant que si un assistent és eliminat, la seva reserva desaparegui automàticament sense deixar “dades òrfenes”.
  • Sessions: Implementació manual d’un sistema de cookies bàsic per identificar el user_id durant la navegació.

🎨 Interfície Visual: Estètica “Gamer”

El disseny s’ha de centrar en una experiència d’usuari (UX) d’estil Dark Mode / Neo-Glow:

  • Paleta cromàtica: Fons gairebé negre (#0a0a0c), amb contrastos vibrants en Cian Neó (#00d2ff) i Púrpura Neó (#9d50bb).
  • Acabats: Ús de degradats subtils, tipografia Segoe UI i el recurs del box-shadow per crear efectes de brillantor als contenidors.
  • Estructura: Les taules de dades han de ser minimalistes, amb capçaleres en tons porpra per mantenir la coherència visual.

⚙️ Lògica de l’Aplicació (Handler)

El script ha de gestionar de manera eficient els següents fluxos:

  1. Flux de Registre: Captura inicial de dades i redirecció immediata a la graella horària.
  2. Control d’Aforament: El sistema ha de calcular en temps real les places lliures (màxim 20 persones per franja de 15 minuts, de 16:45 a 18:45).
  3. Àrea d’Administració (/admin): Panell protegit mitjançant Basic Auth (admin/JA54734231). Permet visualitzar el llistat complet, filtrar per hora mitjançant badges visuals i gestionar les baixes d’usuaris.

📋 Especificacions Tècniques Clau

Port: El servidor s’ha d’executar al port 5000, amb la configuració necessària per permetre la reutilització de l’adreça de xarxa.

Idioma: Tot el front-end ha d’estar íntegrament en català.

0

Subtotal