7.4 KiB
Database Film
Questo è un progetto del corso JavaScript. Dovrai creare una pagina web per cercare film usando l'API OMDb e salvarli nei preferiti con localStorage.
Le funzionalità principali da implementare sono:
- Ricerca film - Usare
fetchper cercare film per titolo - Mostrare i risultati in una tabella - con poster, titolo, anno, tipo e pulsante "Aggiungi ai Preferiti"
- Salvare nei preferiti - Usare
localStorageper salvare i film preferiti - Gestire i preferiti - Disabilitare il pulsante se il film è già nei preferiti, e creare una pagina separata per visualizzare e rimuovere i preferiti
🔑 Ottenere la Chiave API di OMDb
Prima di iniziare, devi ottenere una chiave API gratuita da OMDb.
Passaggi per ottenere la chiave:
-
Vai sul sito OMDb: http://www.omdbapi.com/apikey.aspx
-
Scegli il piano FREE (Gratis): seleziona "FREE! (1,000 daily limit)" che ti permette di fare 1000 richieste al giorno senza pagare. Non è necessario inserire i dati della carta di credito.
-
Compila il Form con dei dati:
- Email Address: il tuo indirizzo email (DEVE ESSERE VALIDO, riceverai un'email)
- First Name: il tuo nome (puoi mettere un nome fittizio se vuoi)
- Last Name: il tuo cognome (anche questo può essere fittizio)
- Use: metti "Learning JavaScript" o qualcosa di simile
- Premi il pulsante "Submit" per inviare la richiesta
-
Controlla la Email: riceverai un'email da OMDb con il soggetto "OMDb API - Free API Key". Se non la vedi, controlla la cartella spam o posta indesiderata. Qui troverai un link per attivare la tua chiave API e la tua chiave API stessa. Nota che se non attivi la chiave cliccando sul link, non funzionerà!
-
Copia la Chiave API: dopo aver cliccato sul link di attivazione, vedrai la tua chiave API (è una stringa alfanumerica tipo
abc12345). Copia questa chiave e incollala nel filescript.jsalla riga dove c'è la costanteAPI_KEY.const API_KEY = 'abc12345'; // <-- Sostituisci con la tua chiave
Come Funziona l'API OMDb
URL Base
http://www.omdbapi.com/
Cercare Film per Titolo
http://www.omdbapi.com/?apikey=TUA_CHIAVE&s=matrix
Parametri:
apikey: la tua chiave APIs: termine di ricerca (search)
Esempio di Risposta:
{
"Search": [
{
"Title": "The Matrix",
"Year": "1999",
"imdbID": "tt0133093",
"Type": "movie",
"Poster": "https://..."
},
{
"Title": "The Matrix Reloaded",
"Year": "2003",
"imdbID": "tt0234215",
"Type": "movie",
"Poster": "https://..."
}
],
"totalResults": "12",
"Response": "True"
}
Cosa Fare nel Codice:
- Costruisci l'URL con la chiave API e il termine di ricerca
- Fai un
fetch()all'URL - Usa l'array
Searchper mostrare i film
Come Iniziare
Per iniziare il progetto ci sono due strade:
-
Fork del repository base. Lo trovate qui e potete fare un fork per avere una copia personale su cui lavorare.
-
Creare una nuova repository seguendo i passaggi qui sotto (consigliato per chi vuole fare tutto da zero e imparare il workflow completo di GitHub).
- Nuova Repo: Vai su github.com e crea una nuova repository (In alto un pulsante "+" e poi "New Repository"), con Repository Name:
DatabaseFilm, Description: "Progetto Database Film per corso Web", Public, Initialize with README (opzionale). - Aggiungi Files: Dopo aver creato la repo, puoi aggiungere i file
index.html,style.css,script.jseREADME.mddirettamente da GitHub (usando il tasto "+" (vicino a "Code") → "Upload files". Nella pagina di upload, trascina i file o selezionali dal tuo computer, poi scrolla in basso e fai commit dei file con un messaggio chiaro come "Add initial project files".
- Nuova Repo: Vai su github.com e crea una nuova repository (In alto un pulsante "+" e poi "New Repository"), con Repository Name:
A questo punto possiamo iniziare a lavorare localmente con VSCode e GitHub:
Clona: Copia l'URL della repo (es: https://github.com/[tuonome]/DatabaseFilm.git) e clonala localmente usando Git o direttamente dentro VSCode.
VSCode: Da dentro vs code, apri la cartella del progetto se non già fatto.
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.
Ottieni la Chiave API: Segui i passaggi sopra per ottenere la tua chiave OMDb (se non l'hai già fatto) e inseriscila in script.js prima di fare il commit iniziale.
💡 Suggerimenti per l'Implementazione
-
Usa
fetch()per chiamare l'API: costruisci l'URL con la chiave API e il termine di ricerca, poi usafetch()per ottenere i dati. Nella costruzione dell'URL, assicurati di includere tutti i parametri necessari. ATTENZIONE ai nomi delle proprietà che sono maiuscole negli oggetti restituiti dall'API (es.Title,Year,imdbID,Type,Poster). -
Gestisci i Poster Mancanti: se il campo
Posterè "N/A", mostra un'immagine di placeholder invece del poster del film. Puoi usare un'immagine generica come questa:https://via.placeholder.com/60x90?text=No+Poster. -
Crea le Righe della Tabella: per ogni film nei risultati, crea una riga nella tabella con il poster, titolo, anno, tipo e un pulsante "Aggiungi ai Preferiti". Usa
innerHTMLper inserire i dati dinamicamente. Puoi anche aggiungere una classe CSS al pulsante per poterlo stilizzare e gestire più facilmente. Inoltre consiglio di spezzare la creazione della riga in una funzione separata rispetto alla creazione della tabella, in modo da mantenere il codice più organizzato. -
Salvare nei Preferiti: quando l'utente clicca su "Aggiungi ai Preferiti", salva il film in un array di preferiti e poi salva questo array in
localStorageusandoJSON.stringify(). Assicurati di gestire i casi in cuilocalStorageè vuoto (devi inizializzare l'array) e di non aggiungere duplicati (controlla con l'imdbID). -
Gestire i Preferiti: nella pagina
preferiti.html, recupera i preferiti dalocalStorageusandoJSON.parse(), e mostra la tabella dei preferiti. Aggiungi un pulsante "Rimuovi" per ogni film che, quando cliccato, rimuove il film dai preferiti e aggiorna la visualizzazione. Puoi usarearray.splice()per rimuovere l'elemento dall'array dei preferiti in base all'indice, oppurearray.filter()per creare un nuovo array senza il film da rimuovere.
🐛 Debug
La chiave API non funziona
- Hai attivato la chiave cliccando sul link nell'email?
- Hai copiato la chiave completa senza spazi?
- Hai sostituito
'TUA_CHIAVE_API_QUI'nel codice?
I film non si vedono
- Apri la Console (F12)
- Cerca errori di rete (tab Network)
- Verifica che l'URL sia corretto
- Testa l'URL direttamente nel browser
localStorage non funziona
- Controlla in DevTools → Application → Local Storage
- Verifica di usare JSON.stringify() quando salvi
- Verifica di usare JSON.parse() quando recuperi
I preferiti non si vedono
- Controlla che la chiave sia
'preferiti'in entrambi i file - Verifica che
caricaPreferiti()sia chiamata all'avvio - Usa console.log() per vedere cosa c'è in localStorage