From 6855df7fc3751138363b62d62bbecf506d55d137 Mon Sep 17 00:00:00 2001 From: MehrdadShirvani Date: Mon, 27 Apr 2026 05:55:00 +0000 Subject: [PATCH] Update README.md --- README.md | 85 ++++++++++++++++++++----------------------------------- 1 file changed, 30 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index b2b0ac9..8174c3e 100644 --- a/README.md +++ b/README.md @@ -121,64 +121,40 @@ Understanding: You must be able to explain your implementation ## Bonus Tasks ✒️ 1. Fetch and display movie information using movie ID -In this section, you must implement the ability to search for a movie by its ID. The user enters an ID, and the program displays complete movie details. +Implement movie search by ID. User enters an ID, program displays complete movie details. -Movie Class Fields (already defined): +### ⚠️ First: Add Missing Fields to Movie Class +The API returns more data than your current class supports. Add these fields: +- `actors`, `awards`, `director`, `imdb_id`, `imdb_votes`, `metascore`, `plot`, `rated`, `released`, `runtime`, `type`, `writer` -- id (Long) - Movie identifier +### Implementation Steps: -- title (String) - Movie title +1. **Complete `getMovieById(movieId)`** + - Build request to: `https://api.meshcomp.ir/api/v1/movies/{movieId}` + - If status 200 → return JSON body, else → return null -- year (String) - Release year - -- genres (List) - List of genres - -- images (String) - Poster image URL - -- country (String) - Production country - -- imdbRating (String) - IMDB rating - -Implementation Steps: - -- Build and Send Request (getMovieById method): - - - Create HTTP request to: https://api.meshcomp.ir/api/v1/movies/{movieId} - - - Replace {movieId} with the ID from user - - - Send request and get response - -- Handle Response (getMovieById method): - - - If status code is 200, return JSON body - - - Otherwise, print error and return null - -- Parse JSON and Create Movie Object (displayMovieDetails method): - - - Parse JSON response to JsonObject - - - Extract all fields: id, title, year, poster, country, imdb_rating - - - Parse "genres" array and convert each to Genre object - - - Create a Movie object with all extracted data - -- Display Results (displayMovieDetails method): - - - Print all movie details in a clean format - -2. Advanced search (title, genre, year, rating, etc.) - -3. Sorting options for movies - -4. Save/load favorite movies to/from a file - -5. Improved console menu design - -6. GUI version using JavaFX +2. **Complete `displayMovieDetails(movieId)`** + - Call `getMovieById()` → check for null + - Use Gson to parse JSON to Movie object (after adding fields above) + - Print formatted output (see example below) +### Example Output: +``` + ======================================================================= + THE SHAWSHANK REDEMPTION (1994) + ======================================================================= + Rating: 9.3/10 | Votes: 1,738,596 + Director: Frank Darabont + Cast: Tim Robbins, Morgan Freeman, Bob Gunton, William Sadler + Genre: Crime, Drama + Runtime: 142 min | Rated: R + Country: USA | Released: 14 Oct 1994 + Plot: Two imprisoned men bond over a number of years, finding + solace and eventual redemption through acts of common decency. + Awards: Nominated for 7 Oscars. Another 19 wins & 30 nominations. + ======================================================================= + +``` --- ## References 📚 @@ -201,5 +177,4 @@ Jackson Tutorial: --- ## Submission ⌛ -Deadline: May 1st (11 Ordibehesht) - +Deadline: May 1st (11 Ordibehesht) \ No newline at end of file