Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

280 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Movie Search Application

Contributors

Aditya Rajeev: Steelcrawler
Clarina Ong: clarinaong
Alaya (Phuong Anh) Le: alaya-le
Daniel Kuhn: DCKuhn
Zheyuan Zhang: love2know

Table of Contents

Introduction

The Movie Search Application is a Java-based application that allows users to search for movies, view details, and manage their watchlist. This app was created to address the common challenge of finding movies to watch and managing personal movie preferences. It recognizes that users often struggle to discover new films that align with their interests or keep track of movies they want to watch. The application uses the TMDB API to fetch movie data and provides a user-friendly interface for searching and managing movies. The application also provides an interface for the user to get new movie reccomendations based on movies currently in their watchlist, and get reasoning as to why they are benig recommended said movies.

Installation Requirements

System Requirements

  • Operating System: Windows, macOS, or Linux
  • Java Development Kit (JDK) 11 or higher
  • Maven 3.6.0 or higher
  • 500MB free disk space

Required Software

  1. Java JDK 11+

  2. Maven

Installation Steps

  1. Clone the repository:

    git clone https://github.com/Steelcrawler/CSC207Project.git
    cd CSC207Project
  2. Configure Dependencies: The project uses Maven for dependency management.

    All dependencies are defined in pom.xml. Maven will automatically download them during the build.

  3. Build the project:

    mvn clean install
  4. Run the application: Navigate to and run:

    src/main/java/app/Main.java

Common Installation Issues

  1. Maven Build Fails

    • Issue: Missing dependencies or incorrect Maven configuration
    • Solution:
      • Verify your settings.xml file
      • Try running with -X flag for debug output:
        mvn clean install -X
      • Clear Maven cache:
        mvn dependency:purge-local-repository
  2. Java Version Mismatch

    • Issue: Incorrect Java version
    • Solution:
      • Verify Java version:
        java -version
      • Set JAVA_HOME environment variable:
        • Windows:
          set JAVA_HOME=C:\Program Files\Java\jdk-11
        • Unix/MacOS:
          export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

Usage Guide

  1. Sign Up: Create a new account by providing a username and password.

Signing up for an account The sign-up screen showing fields for creating a new account with username and password

Logging in with the new account The login screen where users can enter their credentials to access their account

The screen once you log in The movie search screen once you log in

  1. Log In: Log in to the application using your credentials. Log-ins are universal; that is, with this application, you can log in across devices and maintain the same watchlist.

  2. Search Movies: Use the search functionality to find movies by title and filter by genre, rating, and keywords.

Searching for a movie by title The search interface where users can enter movie titles and apply various filters

  1. Manage Watchlist: Add movies to your watchlist and remove them as needed.

Adding a movie to the watchlist The popup shown after adding a selected movie to your personal watchlist

Viewing the watchlist The watchlist view displaying all saved movies in a scrollable list

Pressing select in the watchlist The selection interface within the watchlist for choosing specific movies. Pressing the delete button will delete the selected movie

  1. Movie Info: See details about a movie such as rating information, trailer link, and plot summary.

Seeing the movie info from my watchlist Detailed movie information view showing rating, plot summary, and trailer links

  1. Movie Recommendation: Receive a relevant movie based on selected movies from a user's personal watchlist and get an AI-generated justification for the recommendation.

Choosing a specific movie in the watchlist Selecting movies from your watchlist for recommendations

Getting a recommendation from said selection The recommendation screen showing a suggested movie based on your selection

Understanding why you were recommended said movie The AI-generated explanation for why this specific movie was recommended

License

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Feedback

We welcome your feedback to improve the application! Submit your thoughts via by opening an issue on GitHub.

Guidelines:

  1. Clearly describe your feedback or any issues encountered.
  2. Please be constructive and provide as much detail as possible.
  3. Allow up to 2-3 business days for a response.

Contribution

Interested in contributing? Follow these steps:

  1. Fork the repository.
  2. Create a new branch for your changes: git checkout -b feature-name
  3. Commit your changes: git commit -m "Description of feature"
  4. Push to your fork and submit a pull request.

Contribution Guidelines:

  1. Ensure your code adheres to the project's style and conventions.
  2. Write clear commit messages.
  3. Test your changes thoroughly before submitting.
  4. We review all contributions and aim to merge valuable changes promptly.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages