Giter Club home page Giter Club logo

second-assignment-cinescribe's Introduction

Second Assignment: CineScribe ๐ŸŽฅ

Welcome to your second assignment in the Advanced Programming course! In this project, you'll be tasked with building a Java application that acts as a simple movie aggregator, fetching data from both the IMDB and Actor API to provide information about movies and actors/actresses.

Objectives โœ๏ธ

By completing this assignment, you will:

  • Reinforce your understanding of Object-Oriented Programming (OOP) principles and apply them effectively.
  • Gain familiarity with the process of issuing HTTP requests to APIs and parsing JSON data in Java.
  • Learn to manage and track changes in your project using Git.

Prerequisites โœ…

Before getting started, ensure you have the following installed:

  • Java 21
  • Git
  • Gradle as a package manager

Tasks ๐Ÿ“

  1. Fork this repository and clone it to your local machine.

  2. Create a new branch named develop and switch to it. All development should be done in this branch.

  3. Get an API key from https://omdbapi.com (for Movie class) and https://api-ninjas.com/api/celebrity (for actor class). You need to sign up and verify your account.

  4. Design Movie and Actor classes with appropriate methods and attributes. Complete the methods in the code and add at least one new attribute for each class, then write a new method to get the attribute's proper value using JSON string.

  5. Implement a menu in your Main class. This menu should allow users to:

    • Enter the name of a movie and display information extracted from the JSON object in the console, including the list of actors.
    • Choose an actor from the displayed list and view their information in the console. If the actor is deceased, display him/her date of death.
  6. Add error handling to handle cases where the API returns an error or the movie/actor name is not found. For instance, if the user enters the movie name "Tis Is Us," and the API responds with {"Response":"False","Error":"Movie not found!"}, the program should prompt the user to enter a new movie name until a valid one is provided.

  7. Write a comprehensive report detailing the tasks you have completed and any challenges you encountered. Your report should be written in Markdown format. You can write your report in the provided Report-Template.md file located within the repository, which serves as a simple template for structuring your report.

  8. Commit your changes and push them to your GitHub repository.

  9. Submit a pull request from your develop branch to your main branch. Your mentor will review the pull request and merge it upon approval.

Evaluation ๐Ÿ“ƒ

Your submission will be evaluated based on the following criteria:

  • Your code should pass all the tests provided in the test directory.
  • Error-free compilation and execution of your code.
  • Accurate retrieval and presentation of movie and actor data through the methods written.
  • Clear code structure, readability, thorough commenting, and adherence to clean code principles.

Note: Usage of ChatGPT or any other AI generative model to complete any part of this assignment is strictly prohibited. Violation will result in a score of 0 without warnings.

Bonus Objectives โœ’๏ธ

For additional challenges and learning opportunities, consider the following bonus objectives:

  • Enhance your classes to display more comprehensive information about movies and actors.
  • Revise your report to provide more detailed insights into your approach and challenges faced.
  • Utilize Postman for API testing and exploration. Postman is a powerful API client that simplifies the process of testing, documenting, and sharing APIs. It provides an intuitive interface for sending HTTP requests, allowing developers to explore and interact with APIs effortlessly.
  • Provide a simple GUI (Graphical User Interface) for your project. The recommended library to do so is JavaFX. JavaFX empowers developers to create dynamic and engaging user interfaces for their Java applications, offering a modern and versatile platform for building cross-platform desktop, web, and mobile applications

Submission โŒ›

The deadline for submitting your code is Thursday, March 7 (17th of Esfand).

Resources ๐Ÿ“š

For assistance with this assignment, you may refer to the following resources:

๐Ÿ”— How to Write a Good README File for Your GitHub Project

๐Ÿ”— A Simple Readme Template

๐Ÿ”— Markdown Cheet Sheet

๐Ÿ”— Getting Json Data From A RESTFUL API Using Java

๐Ÿ”— Uploading a File and JSON Data in Postman

๐Ÿ”— Send API requests and get response data in Postman

๐Ÿ”— Getting Started With Javafx

๐Ÿ”— JavaFX Tutorial by Jenkov

second-assignment-cinescribe's People

Contributors

ranarokni avatar grmamobin avatar mahan-m47 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.