UofTrackMyGame
Final Project for CSC207 at the University of Toronto
Table of Contents
Contributors
Frederick Chen, Bhavya Jain, Andrew Kim, Kerri Wei, John Zhang
Project Goals
UofTrackMyGame is a video game price searching application where users can search for games, and the application
compares the prices across various platforms to display the best available deal at that moment.
This project was initially created to provide better access to gaming for all, especially those who find it financially
burdening to pay the full price for a game. Overall, UofTrackMyGame aims to allow people to
save as much as possible on games.
UofTrackMyGame not only provides the best prices across various video game platforms, but also allows users to search by
various filters, including the availability of sale and metacritic score. Furthermore, the application has a feature to
"Track the game", where users can set a desired price for a game and input their email. Then, when that game goes below
the set desired price, the application will send an email notification, preventing the user from having to constantly
check the price of the game. Finally, users can also keep track of multiple games via a wishlist, or find similar games
through the "Find Similar Games" feature.
Features
- Search Game by Title
- Users can search for games by Title. Results are sorted by descending Deal Rating (Deal Rating is a score out of 10
on how 'good' a deal is)
- Search Game by Filter and Sorting
- Users can search for games with the following filters:
- Upper Bound for Price
- Lower Bound for Price
- Metacritic Score (rating out of 100 on how good the game is)
- On Sale or Full Price
- When searching by filter, users can choose to sort the results (ascending or descending) by the following filters:
- Deal Rating
- Title
- Savings (percent of original price that the game is on sale for)
- Price
- Metacritic Score
- Find similarly priced games
- After clicking open a game from the results page, there is a 'Find Similar Games' button that will search for
games of similar price
- Price Tracking of a specific game
- For a specific game, users can set a 'threshold price' and enter their email to be notified when the price of the
game drops below the threshold price
- Adds to a Wishlist, where you can view all the games you are tracking
- Wishlist
- Users can keep a list of games by adding them to their Wishlist
- Users can access their Wishlist via the Search page
Installation
- Clone and open the project from GitHub by pasting the following line into the terminal (in VS Code or IntelliJ):
git clone https://github.com/akhkim/UofTrackMyGame.git
- Link Maven when prompted.
- Navigate to
src/main/java/app/Main.java
and run
Usage Guide
Searching and Sorting Results
Running Main.java
will open the Search screen. From here, users can choose to search by title or search by
filters. The results can be sorted by a variety of filters.
After clicking "Search by Title" or "Search by Filters", the Results screen will open. To switch between screens,
use the "Back" button at the bottom of the screen.
Each panel of the Results screen can be clicked open to a Game Popup Screen. The Game Screen displays the
thumbnail of the game, as well as other information. Users can also click "Find Similar Games" to find similarly
priced games. Finally, users can add the game to their wishlist with the "Add To Wishlist" button.
The Game Screen displays the thumbnail of the game, as well as other information. Users can enter a price and their
email and click "Notify Me" to be notified when the price of the game drops below their specified price.
Lastly, users can view their wishlist by navigating to the Search Screen and click "Go to Wishlist". To remove
entries from the wishlist, navigate to src/main/java/data/wishlist.json
and delete the entries.
Feedbacks
Make sure to read the following text on the qualities of good feedback first, then submit your feedback here!
5 Qualities of a good feedback:
-
Constructiveness
- Avoid general statements like "It's bad"; instead, provide details such as "The UI is difficult to navigate because the icons are not labeled."
-
Relevance
- The feedback should relate directly to the topic, product, or project.
- Avoid unrelated comments or feedback that does not address the purpose of the submission.
-
Actionability
- Provide a possible solution to the feedback
- Example: Instead of saying "I don’t like this", suggest "Adding a search function could improve usability."
-
Specificity
- Use clear and concise language that avoids ambiguity.
- Feedback must clearly describe the issue, feature, or experience.
-
Politeness and Respect
- Maintain a professional and respectful tone, even when discussing challenges.
- Feedback containing offensive or disrespectful language will not be accepted.
Contributions
To make the process of contributions and updating smoother, we recommend the following:
- Fork this project repository and clone it to your local machine. (Read more About Forks)
Before working on any changes, try to sync the forked repository to keep it up-to-date with the upstream repository.
- On a new branch in your fork, work on a small focused change that only touches on a few files.
- Run pre-commit and make sure all files have formatting fixed.
- Package up a small bit of work that solves part of the problem into a Pull Request and send it out for review.
- If you're lucky, we can merge your change into main without any problems. If there are changes to files you're working on, resolve them by:
- First try to rebase as suggested in these instructions.
- If rebasing feels too painful, merge as suggested in these instructions.
- Once you've resolved conflicts (if any), finish the review and squash and merge your Pull Request.
- Merge in your change and move on to a new issue or the second step of your current issue.
License
This project is licensed under the MIT License. See the LICENSE file for details.