Skip to content

tue170/Movie-Picker

Repository files navigation

MoviePicker

Team Exceptionally Mediocre presents a desktop application that will help people find a movie to watch.

Table of Contents

  1. Getting Started.
  2. Usage Instructions & Running the Test.
    a. Running the test from Customize Movie List.
    b. Running the test from DataBase.
    c. Navigation Tool.
  3. Breakdown of code (MVC).
  4. Notes.
  5. Author.

Getting Started 💻

Prerequisities

Required to have Eclipse IDE install.
Recommended to run project on an Eclipse IDE with Java 8.0 or higher.
Recommended to use and be familar with EGit .
Recommended to have installed Scenebuilder 2.0 .

Cloning the MoviePicker repository.

  1. As shown in red in the image below click on the "clone or download" button
  2. Copy the link shown in blue in the image below OR Copy this link : https://github.com/UTSA-CS-3443/MoviePicker.git

alt tag

Import to Eclispe

Click here for visual aid: "image file"

  1. Open Eclispe IDE: Select file -> import-> Git -> Projects from Git -> Clone Url
  2. In empty Text file next to "URL", paste the copied link (https://github.com/UTSA-CS-3443/MoviePicker.git).
    1. All the other fields in Location should be filled automatically.
    2. In the Authentication: fill out accordingly with gitHub Account (username and password)
    3. Click Next
  3. (Step 5, image file ) Branch Selection: check only master -> Click Next
  4. (Step 6, image file ) Local Destination: chose a directory -> Click Next
  5. (Step 7, image file ) Select a wizard to use for importing project -> Select "import as General Project" -> Click Next -> Finish
  6. Import project conflict-- How to resolve:
    1. (Step 8, image file ) Import Project: select cancel.
    2. (Step 9, image file ) File -> Open Projects From File System .
    3. (Step 10, image file ) Import Project From File System or Archive: Find the Directory in which the git repository was story in (Refer to Step 6) -> Click finish.

Usage Instructions & Running the tests 📑

  1. Click on the project in the Package Explorer. (Recommended to at least have Main.java Opened)
  2. Run the project with the Green run button on Eclipse OR hover over the Run tab and select run from the drop-down menu. alt tag

Main view

The first view that is introduced to the user, gives the user two options to select from.

  • Customize Movie List: This option allows the user to generate a random movie from their their own customize movie file. The user can create new movie file, delete an existing file, and add/delete their choice of movie into the file.
  • Generate From Database: This option allows the user to generate a movie from the recent IMDB movie collection. The user can also add their choice of movie to the Database if chose to.

alt tag

Running the test from Customize Movie List (csv file are used)

  • (Optional) File management: As shown in red in the image below, this option allows the user to create their own movie file, delete an existing file
    • To add movie file: enter a file name (the extenstion following the file is not needed), click add file.
    • To delete an existing file: select the file name from the list, click delete.
  • (Required) Select a Movie File from the list: As shown in blue in the image below, this option allows the application to load the next view with present the user with the list of movie(s) that are in the file.
    • TLDR: To advance to the next view: select a file from the list, click select file.

alt tag

Editing movie list

  • (Optional/Required) If user selected a newly created file to customize, they are required to add at least one movie to the list; Otherwise adding a movie is optional and is up to the user decision to add as they please.
    • To add a movie: enter a title for the movie, and select a best fit genre for the movie. --> click add movie
    • Setting the location is optional. The location is for the user to keep track of where they might obtain the movie
      • Example for location: home, dvd, Netflix, friend's place, or in theater.
  • (Optional) Deleting a specific movie in the movie list.
    • To delete a movie: click the movie on the list -> click delete button.
    • User is unable to delete a movie without selecting a movie.
    • If ultimately, the user delete all the movie in the list, the user can not next process to the advance in the application with out at least one movie in the List
    • If ultimately, the user wants to delete all the movie in the list, please refer to deleting a file from the library instead of manually deleting all the movie in a specific list.

alt tag

Generating a movie

  1. From the Movie list View, click the next button on the bottom left of the application, as shown in the images above in green
  2. From the "Select a Genre" view, all the possible 9 genre are shown plus an additional button that allows the user to choose regardless of a specific genre.
    • User must select a button to advance to the next view.
    • Genre button(s) are disable if there are no movie(s) that has been categorized under that genre
  3. If the user is unsatisfied with the resulted random movie, the user can regenerate with the re-generate button.
    • To re-generate for another movie within the same genre: click re-generate.
    • User can navigate back to the movie list to access the genre selection view to select a different genre

alt tag

Running the test from Generate From Database (imdb data set are used)

  • (Optional) To add a new movie: As shown in red in the image below, this option allows the user to add a new movie into the database. All the 4 sub-step are required action to do to successfully add a movie to the database.
    • Select a genre to add a movie into.
    • Enter title for the movie.
    • Select a date for the release.
    • Click submit. After submission, the movie should appear in the movie list when the genre is reselected.
      • User is prevented from adding the identical movie
      • User is prevented from adding a movie without the following requirements above being filled out
  • (Required) Randomly Generate a Movie: As shown in blue in the image below, this option allows the user obtain a random movie within a genre and a set range.
    • Select a genre to generate from
    • Select a rating boundary to generate from
  • (Optional) Re-generate for anothor movie: click "generate again" button
    • To generate a movie of another genre and rating: click database icon (image: imdb) and select a different genre and rating range --> click generate

alt tag

Feature of Database

  • Listing of Movies: After selecting a genre for "Enter a movie", Click any of the colmun label, located on the first row of the Movie list in the database library, and the list can be order in that fashion.

Default table view:

Genre Title Date
Action Tangled 12/10/2009
Action Avengers: Age of Ultron 11/24/2010
Action Superman Return 04/22/2015

Click on "Title" :

Genre Title Date
Action Avengers: Age of Ultron 11/24/2010
Action Superman Return 04/22/2015
Action Tangled 12/10/2009

Click on "Date":

Genre Title Date
Action Tangled 12/10/2009
Action Avengers: Age of Ultron 11/24/2010
Action Superman Return 04/22/2015

Navigation 📍

For each view, beside the main view, there is a tool bar fixed on the upper right hand corner as shown below.
The image below displays all the icon possible in this application.

alt tag

  • 🏠 Home Icon (the far right icon, image: house): when clicked on will redirect the user to the main view.
  • 📚 Libary Icon (the second from the right icon, image: books):
    • If the user is running the application with the Customize Movie List option: the library view will display the list of files from the directory folder in which the files are saved in.
      • This icon is only avaliable in the views after the Library view.
    • If the user is running the application with the Generate From Database option: the library view will display the database view library version using the database icon
  • 🎥 Movie List Icon (the second from the left icon, image: flim roll):
    • This option is only avaliable after Movie List view and not before.
    • This option is also only avaliable for Customize Movie List option
      • It is unnecessary for the Generate From Database option to include due to the fact that its Library and Movie List is one in the same and can be access using the database icon.
  • 📃 Database Icon (the far the left, image: IMDB logo):
    • This icon is only avaliable in the last view of the application, when the movie has been generated.
    • This icon redirect user to the Generate From Database option without having to go to the home (Main view) to access it

Breakdown of code (MVC)

Model View Controller
  • Main.java
  • Main.fxml
  • MainController.java
  • Library.java
  • library.fxml
  • LibraryController.java
  • MovieList1.fxml
  • MovieListController.java
  • DatabaseLibrary.java
  • DatabaseLib.fxml
  • DatabaseLibraryController.java
  • Movie.java
  • MoviePop.fxml
  • MovieController.java

Additional essential resources for application

  • JRE Library
  • sqlite-jdbc-3.23.1.jar
  • imdb-movies.db
  • resources folder
  • image folder

Notes

Recognized Problem #1: From the Customize Movie List option, deletion of a movie from a Movie List deletes all movies with the same movie title of the movie

Movie List:                         Movie List:
-------------  Delete: cinderella   -------------
cinderella             Results =>   finding nemo
cinderella                          -------------
finding nemo
-------------

Authors :bowtie:

Jennifer Nguyen
Tiffany Tsai
Keegan Knisely

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published