Aditya Rajeev: Steelcrawler
Clarina Ong: clarinaong
Alaya (Phuong Anh) Le: alaya-le
Daniel Kuhn: DCKuhn
Zheyuan Zhang: love2know
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.
- Operating System: Windows, macOS, or Linux
- Java Development Kit (JDK) 11 or higher
- Maven 3.6.0 or higher
- 500MB free disk space
-
Java JDK 11+
- Download from: Oracle JDK or OpenJDK
- Verify installation:
java -version
-
Maven
- Download from: Maven Official Site
- Installation guide: Maven Installation Instructions
- Verify installation:
mvn -version
-
Clone the repository:
git clone https://github.com/Steelcrawler/CSC207Project.git cd CSC207Project -
Configure Dependencies: The project uses Maven for dependency management.
All dependencies are defined in
pom.xml. Maven will automatically download them during the build. -
Build the project:
mvn clean install
-
Run the application: Navigate to and run:
src/main/java/app/Main.java
-
Maven Build Fails
- Issue: Missing dependencies or incorrect Maven configuration
- Solution:
- Verify your
settings.xmlfile - Try running with
-Xflag for debug output:mvn clean install -X
- Clear Maven cache:
mvn dependency:purge-local-repository
- Verify your
-
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
- Windows:
- Verify Java version:
- Sign Up: Create a new account by providing a username and password.
The sign-up screen showing fields for creating a new account with username and password
The login screen where users can enter their credentials to access their account
The movie search screen once you log in
-
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.
-
Search Movies: Use the search functionality to find movies by title and filter by genre, rating, and keywords.
The search interface where users can enter movie titles and apply various filters
- Manage Watchlist: Add movies to your watchlist and remove them as needed.
The popup shown after adding a selected movie to your personal watchlist
The watchlist view displaying all saved movies in a scrollable list
The selection interface within the watchlist for choosing specific movies. Pressing the delete button will delete the selected movie
- Movie Info: See details about a movie such as rating information, trailer link, and plot summary.
Detailed movie information view showing rating, plot summary, and trailer links
- 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.
Selecting movies from your watchlist for recommendations
The recommendation screen showing a suggested movie based on your selection
The AI-generated explanation for why this specific movie was recommended
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.
We welcome your feedback to improve the application! Submit your thoughts via by opening an issue on GitHub.
Guidelines:
- Clearly describe your feedback or any issues encountered.
- Please be constructive and provide as much detail as possible.
- Allow up to 2-3 business days for a response.
Interested in contributing? Follow these steps:
- Fork the repository.
- Create a new branch for your changes:
git checkout -b feature-name - Commit your changes:
git commit -m "Description of feature" - Push to your fork and submit a pull request.
Contribution Guidelines:
- Ensure your code adheres to the project's style and conventions.
- Write clear commit messages.
- Test your changes thoroughly before submitting.
- We review all contributions and aim to merge valuable changes promptly.