From 1b02a34bf60708f98b4d93319edef34e7e220606 Mon Sep 17 00:00:00 2001 From: Berack96 Date: Tue, 20 Jan 2026 14:29:31 +0100 Subject: [PATCH] undo fix --- Progress.md | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 Progress.md diff --git a/Progress.md b/Progress.md new file mode 100644 index 0000000..80e3b17 --- /dev/null +++ b/Progress.md @@ -0,0 +1,228 @@ +# πŸ“‹ PROGETTO: App Film con OMDb API + +**Obiettivo**: App Blazor che cerca film via API OMDb e gestisce una lista preferiti in memoria. + +**3 Pagine**: Ricerca β†’ Dettaglio β†’ Preferiti + +--- + +## **FASE 1: SETUP C# su VSCode** + +### Cosa fare: + +1. **Installa le estensioni essenziali** in VSCode: + - `C# Dev Kit` (Microsoft) + - `Blazor WASM Debugging` (Microsoft) + - `Thunder Client` o `REST Client` (opzionale, per testare API) + +2. **Verifica che hai .NET 10** installato: + ```powershell + dotnet --version + ``` + +3. **Crea il progetto da template Blazor Web**: + ```powershell + dotnet new blazor -n TestAlebro + cd TestAlebro + ``` + *(Tu hai giΓ  la struttura, quindi skippa questo se vuoi ripartire da quella)* + +4. **Apri la cartella in VSCode** e verifica che riconosca il progetto (se no, controlla le estensioni) + +--- + +## **FASE 2: AGGIUNTA DIPENDENZE (NuGet Packages)** + +### Cosa ti serve: + +Solo **2-3 package** oltre a quelli di default: + +| Package | Motivo | Comando | +|---------|--------|---------| +| `HttpClient` | Per chiamare API OMDb (giΓ  incluso) | *(niente da fare)* | +| `Newtonsoft.Json` (opzionale) | Se vuoi semplificare il parsing JSON rispetto a `System.Text.Json` | `dotnet add package Newtonsoft.Json` | + +### Come aggiungerli: + +**Opzione A (Command Line)** - Nel terminale della cartella progetto: +```powershell +dotnet add package Newtonsoft.Json +``` + +**Opzione B (Manuale nel .csproj)** - Apri `TestAlebro.csproj` e aggiungi sotto ``: +```xml + +``` +Poi esegui: +```powershell +dotnet restore +``` + +### Cosa NON ti serve: +- ❌ Entity Framework (non hai database) +- ❌ Authentication (il test non lo richiede) +- ❌ Dependency Injection esterno (Blazor lo ha integrato) + +--- + +## **FASE 3: PIANIFICAZIONE FEATURES** + +### Ordine di implementazione (suggerito): + +#### **STEP 1: Setup della comunicazione con OMDb** + +**Cosa fare:** +1. Registrati su [omdbapi.com](https://www.omdbapi.com/) e prendi l'API key +2. Crea una **cartella `Services`** nel progetto +3. Crea una **classe `OmdbService.cs`** con metodi: + - `SearchMoviesAsync(string title)` - chiama l'API di ricerca + - `GetMovieDetailsAsync(string imdbId)` - chiama l'API dettagli singolo film + +**Cosa imparare:** +- Come usare `HttpClient` in C# +- Come deserializzare JSON in C# (`JsonSerializer` o Newtonsoft) +- Come gestire le risposte dell'API + +#### **STEP 2: Gestire i Preferiti in memoria** + +**Cosa fare:** +1. Crea una **classe `FavoritesService.cs`** (in cartella `Services`) +2. Implementa metodi: + - `AddFavorite(Movie movie)` - aggiunge film a lista locale + - `RemoveFavorite(string imdbId)` - rimuove dalla lista + - `GetFavorites()` - ritorna la lista + - `IsFavorite(string imdbId)` - controlla se Γ¨ salvato + +**Nota**: I preferiti devono stare **in memoria del componente** o in **sessionStorage** (JavaScript interop). + +#### **STEP 3: Pagina di Ricerca** + +**Cosa fare:** +1. Crea `Pages/Search.razor` +2. Aggiungi: + - Una `` per il titolo film + - Un `