From 821190d9bdc932740d2e87633c4dfbd536d0c72c Mon Sep 17 00:00:00 2001 From: Partow Roshani Date: Thu, 23 Apr 2026 09:13:46 +0000 Subject: [PATCH] Update README.md --- README.md | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/README.md b/README.md index 139597f..5f0ccbf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,106 @@ +## Third Assignment: Movie Explorer 🎬 + Rational Calculator 🧮 +--- +Welcome to Your Third Assignment in the Advanced Programming Course! +This assignment consists of two separate parts. You must complete both parts. +--- + +## Part 1: Rational Class (Rational Numbers) +In this part, you will implement a Rational class that supports basic mathematical operations. + +Tasks: +Define fields for numerator and denominator + +Implement a constructor and a reduce() method for simplification + +Implement addition, subtraction, multiplication, and division as instance methods + +Implement addition, subtraction, multiplication, and division as static methods + +# Note: Detailed TODO comments are provided inside Rational.java. +--- +## Part 2: Movie Explorer 🎬 (Using API) +In this part, you will develop a Java application that fetches movie data from an API and allows users to browse and search movies. + +Files Provided: +Movie.java + +Genre.java + +MovieService.java + +Main.java + +Tasks: +Complete the Movie class (fields, constructor, getters/setters) + +Complete the Genre class (fields, constructor, getters/setters) + +Parse JSON data from getGenresList() into a list of Genre objects + +Display the list of genres to the user + +Fetch and return a list of movies by genreId and page number + +Display the genres of a specific movie + +Implement a console menu in Main to receive user input and display data + +# Note: Detailed TODO comments are provided inside each of the above source files. +--- +## Objectives ✏️ +By completing this assignment, you will: + +Reinforce OOP concepts: class design, constructors, encapsulation, collections + +Practice instance methods vs. static methods + +Work with JSON parsing and REST APIs + +Design a simple console-based menu + +Improve Git workflow and project management +---- +## Prerequisites ✅ +Git + +Java (version 23 or 25) + +API key for movie database (e.g., TMDB) +--- +## Tasks Summary 📝 +Fork the repository and clone it locally + +Create and switch to a development branch + +Complete Part 1 (Rational.java) following the TODO comments + +Complete Part 2 (Movie.java, Genre.java, MovieService.java, Main.java) following the TODO comments + +Ensure the code compiles and runs correctly + +Commit and push regularly + +Submit a pull request from development to main +--- +## Evaluation Criteria ⚖️ +Functionality: Code compiles and runs without errors; all features work correctly + +Code Quality: Clean, readable, well-structured code with proper naming + +Understanding: You must be able to explain your implementation +--- +## Bonus Tasks ✒️ +Advanced search (title, genre, year, rating, etc.) + +Sorting options for movies + +Save/load favorite movies to/from a file + +Improved console menu design + +GUI version using JavaFX +--- +## Submission ⌛ +Deadline: May 1st (11 Ordibehesht)