____ _ _
/ ___|| |__ __ _ _ __ ___ __ _ _ __ (_)_ __ _ __
\___ \| '_ \ / _` | '_ ` _ \ / _` | '_ \ _____| | '_ \| '_ \
___) | | | | (_| | | | | | | (_| | | | |_____| | | | | | | |
|____/|_| |_|\__,_|_| |_| |_|\__,_|_| |_| |_|_| |_|_| |_|
Applicazione web per il monitoraggio in tempo reale dei risultati delle elezioni regionali della Puglia 2025.
Questo progetto Γ¨ una piattaforma web sviluppata con Next.js 16 che permette di visualizzare e monitorare i risultati elettorali delle elezioni regionali pugliesi del 2025. L'applicazione offre una visualizzazione dettagliata dei risultati per candidati, affluenza e dati suddivisi per provincia.
- π³οΈ Visualizzazione Risultati: Tabelle dettagliate con i risultati dei candidati e relative percentuali
- π Affluenza in Tempo Reale: Monitoraggio dell'affluenza alle urne con grafici e statistiche
- πΊοΈ Dati Provinciali: Risultati dettagliati per ciascuna delle 6 province pugliesi (Bari, BAT, Brindisi, Foggia, Lecce, Taranto)
- π Dark Mode Intelligente: Supporto per modalitΓ chiara/scura con sincronizzazione automatica al tema di sistema
- π± Design Responsivo: Interfaccia ottimizzata per desktop, tablet e mobile
- β‘ Performance: Utilizzo di Next.js 16 con Turbopack per un caricamento ultra-veloce
- Framework: Next.js 16.0.2 (Pages Router)
- UI Framework: React 19.2.0
- Linguaggio: TypeScript 5
- Styling:
- Tailwind CSS 4.0.0 (stable)
- DaisyUI 5.5.2 - Componenti UI
- State Management: Redux Toolkit 2.10.1
- Font: Google Fonts - Roboto
- Node.js 18.x o superiore
- npm, yarn, pnpm o bun
- Clona il repository:
git clone <url-repository>
cd shamaninn- Installa le dipendenze:
npm install- Avvia il server di sviluppo:
npm run dev- Apri http://localhost:3000 nel browser
shamaninn/
βββ src/ # Codice sorgente applicazione
β βββ pages/ # Pages Router
β β βββ _app.tsx # App wrapper principale
β β βββ _document.tsx # Document HTML personalizzato
β β βββ index.tsx # Homepage
β β βββ risultati.tsx # Pagina risultati elettorali
β β βββ affluenze.tsx # Pagina affluenza
β β βββ provincia/
β β βββ [provincia].tsx # Pagine dinamiche per provincia
β βββ components/ # Componenti React riutilizzabili
β β βββ Navbar.tsx # Barra di navigazione con dark mode
β β βββ Providers.tsx # Context providers
β βββ styles/
β β βββ globals.css # Stili globali e configurazione Tailwind
β βββ lib/
β β βββ utils.ts # Utility functions
β βββ store/ # Redux store
β β βββ store.ts # Configurazione store
β β βββ regionaleSlice.ts # Slice per dati regionali
β βββ types/
β βββ election.ts # TypeScript types
βββ public/
β βββ data/
β βββ risultati-regionali.json # Dati elettorali (mock)
βββ next.config.ts # Configurazione Next.js
Il sistema di dark mode offre tre modalitΓ :
- Auto: Segue automaticamente il tema del sistema operativo in tempo reale
- Light: ModalitΓ chiara forzata
- Dark: ModalitΓ scura forzata
Il pulsante nella navbar cicla tra queste tre modalitΓ . La preferenza viene salvata in localStorage e ripristinata automaticamente nelle visite successive.
/- Homepage con panoramica elezioni/risultati- Risultati completi con tabella candidati/affluenze- Statistiche affluenza per provincia/provincia/[nome]- Dettagli per singola provincia:/provincia/bari/provincia/bat/provincia/brindisi/provincia/foggia/provincia/lecce/provincia/taranto
# Avvia il server di sviluppo
npm run dev
# Crea build di produzione
npm run build
# Avvia il server di produzione
npm run start
# Esegue il linter
npm run lint- Utilizzo di Pages Router per compatibilitΓ e semplicitΓ
- Routing dinamico per le pagine delle province
getServerSidePropsper SSR (Server-Side Rendering)
- Tailwind CSS 4.0 con configurazione nativa CSS (
@import) - DaisyUI per componenti UI pre-stilizzati
- Temi personalizzati per light/dark mode
- CSS custom properties per variabili di tema
- Turbopack come bundler di sviluppo (default Next.js 16)
- Ottimizzazione automatica delle immagini
- Code splitting automatico
- Font optimization con
next/font
- TypeScript strict mode
- Tipi definiti per dati elettorali
- Props tipizzate per tutti i componenti
I dati elettorali sono strutturati in formato JSON:
interface ElectionData {
timestamp: string;
totalVoters: number;
votedCount: number;
turnoutPercentage: number;
candidates: Candidate[];
provinces: ProvinceData[];
}La configurazione di Tailwind CSS 4.0 avviene direttamente nel file styles/globals.css:
@import "tailwindcss";
@plugin "daisyui";Configurazione in next.config.ts:
const nextConfig: NextConfig = {
reactCompiler: true,
};- Verifica che
@plugin "daisyui";sia presente inglobals.css - Controlla che il file CSS sia importato in
_app.tsx - Riavvia il server di sviluppo
- Cancella il localStorage del browser
- Verifica che l'attributo
data-themesia presente sul tag<html> - Ricarica la pagina
- Assicurati che i nomi delle province siano lowercase nell'URL
- Verifica che
getServerSidePropssia presente nelle pagine dinamiche
Il progetto Γ¨ stato inizialmente sviluppato con App Router e successivamente migrato a Pages Router per:
- Maggiore stabilitΓ con Next.js 16
- CompatibilitΓ con Redux e state management
- Gestione sincrona dei parametri di routing
- Migliore supporto per SSR
- Pages Router invece di App Router per evitare problemi con async params
- DaisyUI per velocizzare lo sviluppo UI
- Tailwind CSS 4.0 per le ultime funzionalitΓ di styling
- localStorage per persistenza preferenze tema
vercelnpm run build
npm run startQuesto progetto Γ¨ stato sviluppato per le elezioni regionali della Puglia 2025.
Ultimo aggiornamento: 13 novembre 2025
