lakshygupta / Movie-Service-Review-Java

Console Application in Java for movie review system.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Movie Service Review : Java Console Application

A Console Based Application implemented in Java. The movie review service collects reviews for movies from its users. Later these movie reviews are used to derive insights which helps in enriching the lives of its customers with entertainment.




About

This Console application is implemented using Data Structures and OOPS Concepts. It is a menu driven application where we can add users, movies and the review of the movies satisfying all the requirements and internal capabilities listed below. Later we can fetch all the movies and their reviews that are entered by the user. It has a feature that upgrades a user depending upon the number of reviews he/she gave and their reviews will have a higher priority than other fellow users.

Internal Capabilities

  1. Users of the service can review only movies which are released so far, they cannot review upcoming movies.
  2. Users can give a review-score between 1 to 10. (Higher the score the better the liking for the movie). Currently we are not allowing a user to review the same movie multiple times.
  3. The service by default on-boards a user as a ‘viewer’. Later a ‘viewer’ can be upgraded to a ‘critic’ after he/she has published more than 3 reviews for various movies.
  4. Critics are considered as experts in the judgement here, so critics reviews will be captured with more weightage. i.e. 6 review rating of a critic will be considered as 12 (2x) NOTE: Older reviews by the user as viewer shall not be affected.

Requirements

This application has following features that are implemented :

  • Adding users and movies.
  • User to review a movie.
  • List top n movies by total review score by ‘critics’ in a particular genre.
  • Average review score in a particular year of release
  • Average review score for a particular movie.

Sample Test Cases:

1. Onboard 10 movies onto your platform in 3 different years.

a. Add Movie("Don" released in Year 2006 for Genres “Action” & “Comedy”)
b. Add Movie("Tiger" released in Year 2008 for Genre “Drama”)
c. Add Movie("Padmaavat" released in Year 2006 for Genre “Comedy”)
d. Add Movie("Lunchbox" released in Year 2021 for Genre “Drama”)
e. Add Movie("Guru" released in Year 2006 for Genre “Drama”)
f. Add Movie("Metro" released in Year 2006 for Genre “Romance”)

2. Add users to the system:

a. Add User(“SRK”)
b. Add User(“Salman”)
c. Add User(“Deepika”)

3. Add Reviews:

a. add_review(“SRK”, “Don”, 2)
b. add_review(“SRK”, “Padmavaat”, 8)
c. add_review(“Salman”, “Don”, 5)
d. add_review(“Deepika”, “Don”, 9)
e. add_review(“Deepika”, “Guru”, 6)
f. add_review(“SRK”,”Don”, 10) - Exception multiple reviews not allowed
g. add_review(“Deepika”, “Lunchbox”, 5) - Exception movie yet to be released
h. add_review(“SRK”, “Tiger”, 5). Since ‘SRK’ has published 3 reviews, he is promoted to ‘critic’ now.
i. add_review(“SRK”, “Metro”, 7)

Execute the program based on above inputs

Paste below line in the console input after you run the code from MovieMain.java

1 SRK 1 1 SALMAN 1 1 DEEPIKA 1 2 DON 2006 2 ACTION COMEDY 1 2 TIGER 2008 1 DRAMA 1 2 PADMAAVAT 2006 1 COMEDY 1 2 LUNCHBOX 2021 1 DRAMA 1 2 GURU 2006 1 DRAMA 1 2 METRO 2006 1 ROMANCE 1 3 SRK DON 2 1 3 SRK PADMAAVAT 8 1 3 SALMAN DON 5 1 3 DEEPIKA DON 9 1 3 DEEPIKA GURU 6 1 3 SRK DON 10 1 3 DEEPIKA LUNCHBOX 5 1 3 SRK TIGER 5 1 3 SRK METRO 7 1

About

Console Application in Java for movie review system.


Languages

Language:Java 100.0%