Customization
Cambiare i dati mock
Edita i file in src/assets/mock/. Vedi Mock Data.
I 6 file JSON disponibili:
| File | Contenuto |
|---|---|
info.json | Ragione sociale, indirizzo, contatti, orari, servizi |
attivita.json | 8 attività con categoria, capienza, livelli |
abbonamenti.json | 5 piani con prezzi mensili/annuali/carnet |
staff.json | 8 profili con certificazioni e specializzazioni |
orari.json | Orari generali + schedaOraria per attività |
faq.json | 10 domande frequenti |
Cambiare i colori
I design tokens sono in src/styles.css:
:root {
--color-accent: #16a34a; /* Verde campo — colore primario */
--color-accent-dark: #14532d; /* Verde scuro per hover */
--color-secondary: #0ea5e9; /* Blu acqua — piscina */
--color-tertiary: #facc15; /* Giallo energia */
--color-hero-bg-start: #f0fdf4; /* Sfondo hero top */
--color-hero-bg-end: #dcfce7; /* Sfondo hero bottom */
}Cambiare il logo
Sostituisci public/favicon.ico e aggiungi il logo SVG in public/logo.svg. Modifica header.component.ts per usare <img> al posto dell'emoji.
Aggiungere route
- Crea il componente in
src/app/pages/{nome}/ - Aggiungi la route in
src/app/app.routes.ts:
{
path: 'news',
loadComponent: () => import('./pages/news/news.component').then((m) => m.NewsComponent),
title: 'News — Polisport Center'
}- Aggiungi il path in
src/prerender-routes.txt
Cambiare i metadati SEO
Edita src/index.html per:
<title>globale<meta name="description">- JSON-LD
SportsActivityLocation(sport, amenityFeature, openingHours)
Per metadati per-route usa Title e Meta di @angular/platform-browser.
Possibili sviluppi customizzabili
12 idee specifiche per il verticale centro sportivo, ordinate per complessità:
AI workout recommender Ollama: integra
llama3.1:8bon-prem per suggerire programmi allenamento personalizzati in base a obiettivi e storico visite del socio — costo infra zero, privacy totaleIntegrazione Apple Health / Garmin / Fitbit: import dati attività tramite OAuth SDK ufficiali; aggiungi widget "Il mio progresso" nella area soci con grafici calorie/passi/frequenza cardiaca
Biometria check-in QR: genera QR code univoco per ogni socio (JWT firmato), posiziona totem NFC/QR all'ingresso per check-in self-service con log su PostgreSQL
Prenotazioni campi outdoor con TSP routing: ottimizza i turni di manutenzione erba sintetica calcolando il percorso minimo tra campi e pianificando irrigazione automatica (IoT + algoritmo Held-Karp semplificato)
Video lezioni on-demand: carica lezioni yoga/pilates/spinning su Bunny CDN con HLS adaptive streaming, protegge i link con token JWT scadenza 2h, accessibili solo agli abbonati autenticati
Payment ricorrente Stripe Connect: gestione abbonamenti mensili/annuali con rinnovo automatico, prorate upgrade/downgrade, fattura PDF automatica via Stripe Invoicing conforme a requisiti fiscali IT
Family wallet digitale: crea un wallet condiviso tra i componenti del nucleo familiare (abbonamento Family) con budget mensile configurabile, notifiche push al superamento soglia, e storico spese per voce
Analytics utilizzo per ottimizzare staffing: dashboard heatmap orari affluenza per ogni attività (dati check-in anonimizzati); suggerisce tagli turni in fasce basse e aperture extra in quelle sature, con export settimanale per il direttore
Gamification badge e leaderboard: sistema achievement (primo allenamento, 50 ingressi, multidisciplina 3 sport diversi in 1 mese); leaderboard mensile opt-in con premi sconto abbonamento per top 10
SMS broadcast segmentato: integra Vonage API per campagne SMS (es. "Padel libero domani sera — prenota ora") con segmentazione per tipo abbonamento, attività preferita e data ultima visita
Schede allenamento PDF personalizzate: genera PDF settimanali con PDFLib (TypeScript) su richiesta del personal trainer; include esercizi, serie/rip, progressioni, note nutrizionali e QR per video tutorial
App PWA companion: trasforma il sito in Progressive Web App installabile con manifest, service worker per offline, push notification per promemoria allenamento e scadenza abbonamento (Web Push API + VAPID key)
White-label per cliente
- Fork del repo o copia in nuova cartella
- Sostituisci
centro-sportivocon nome cliente (sporting-bologna) - Aggiorna tutti i JSON in
src/assets/mock/con dati reali del cliente - Sostituisci footer rimuovendo riferimento a Federico (modifica
footer.component.ts) - Personalizza
vercel.jsoncon domain custom cliente - Aggiorna JSON-LD in
index.htmlcon indirizzo reale e orari effettivi - Deploy su Vercel cliente con loro account Vercel