4.6 KiB
Negozio Online
Questo è un progetto del corso Web. Dovrai creare una pagina web che mostra prodotti recuperati da un'API (locale), con funzionalità di visualizzazione dettagli e filtri (opzionali).
Le funzionalità principali da implementare sono:
- Recuperare i prodotti da API - Usare
fetchper ottenere i dati da un'API locale - Mostrare i prodotti in una tabella - immagine, nome, prezzo, disponibilità
- Modale dei dettagli - Quando clicchi su un prodotto mostra un modale (finestra popup) con tutte le info (immagine grande, nome, descrizione, prezzo, disponibilità) e un pulsante "×" per tornare alla tabella.
- Bonus - Filtri - Aggiungere filtri di ricerca per nome e categoria (opzionale)
Come Iniziare
-
Creare la Repository su GitHub
- Vai su github.com e crea una nuova repository (In alto un pulsante "+" e poi "New Repository")
- Repository Name:
NegozioWeb→ Create Repository - Copia l'URL della repo (es:
https://github.com/[tuonome]/NegozioWeb.git)
-
Clonare la Repository
git clone https://github.com/[tuonome]/NegozioWeb.git cd NegozioWeb -
Copiare i File Base: copia i file forniti (
index.html,style.css,script.js,README.md) nella tua cartella di progetto. -
Apri il Progetto in VSCode: Da dentro vs code, apri la cartella del progetto (
File → Open Folder).
NOTA: Prima di iniziare, assicurati di aver fatto il login a GitHub da VSCode, in modo da poter fare commit e push direttamente dall'editor. -
Commit Iniziale: Dopo aver copiato i file, è importante fare un commit iniziale per avere una base di partenza. Nel tab di VSCode, vai su "Source Control" (icona del ramo git) e vedrai i file non tracciati. Aggiungili al commit e scrivi un messaggio chiaro come "Initial commit: HTML + CSS structure", poi fai commit+push.
-
Struttura HTML: In questo primo punto faremo la struttura base della pagina assieme, in modo da mostrare come lavorare con Git e fare commit frequenti.
🎯 Colleghiamo i vari files 1. Collega il file CSS in index.html 2. Collega il file JS in index.html 3. Creiamo un div con class "container" che conterrà tutta la pagina → commit: "HTML: aggiunta struttura tabella"🎯 Creiamo l'HTML della tabella 1. Tabella vuota 2. Header della tabella con: Immagine, Nome, Prezzo, Disponibilità 3. Body con id "tabellaProdotti" (dove inseriremo i prodotti dinamicamente) → commit: "HTML: aggiunta struttura tabella"🎯 Creiamo il modale 1. Div con class "modal nascosto" e id "modale" 2. Div interno con class "modal-content" 3. Contenuto del modal: - H2 con id "prodottoNome" - Immagine con id "prodottoImmagine" - Paragrafo con id "prodottoDescrizione" - Paragrafo con id "prodottoPrezzo" - Paragrafo con id "prodottoDisponibilita" - span con id "chiudi" e class "close" con dentro il simbolo "×" → commit: "HTML: aggiunta struttura modal" → push o sincronizzazione per salvare su GitHub
📝 Esercizio da Implementare
Dopo la sessione iniziale, si dovranno completare le funzionalità
indicate dentro il file script.js seguendo il workflow Git.
Dopo ogni funzionalità completata, si deve fare un commit con un messaggio chiaro e significativo. Ogni tanto ricordarsi di fare push per evitare di perdere il lavoro!
Gli esercizi da fare si possono dividere in 3 punti principali:
- Popolare la tabella con i dati dei prodotti
- Implementare il modal dei dettagli
- Bonus: Aggiungere filtri di ricerca e categoria
Struttura dei Dati
L'API locale restituirà un array di oggetti, dove ogni oggetto rappresenta un prodotto. Ogni prodotto dovrebbe avere questa struttura (esempio):
{
"id": 1,
"nome": "Laptop MacBook Pro",
"descrizione": "Laptop professionale...",
"categoria": "Elettronica",
"prezzo": 2499.99,
"immagine": "https://...",
"disponibilita": true
}
💡 Suggerimenti per l'Implementazione
-
Dividere il lavoro in funzioni piccole:
function creaRigaProdotto(product)→ crea HTML di una rigafunction mostraProdotti(products)→ riempie la tabellafunction toggleModal()→ mostra/nascondi modal
-
Usa gli event listener:
clicksu riga della tabella → mostra modal e riempi i dettagliclicksu bottone "Chiudi" → nascondi modal
-
Testing:
- Apri la console e verifica che il fetch funzioni (print dei dati come prova)
- Verifica che la tabella si popoli correttamente
- Clicca su una riga e verifica che appaia il modal