A Java project by Alexander Proskiw
According to the Bank of Canada, 9 in 10 Canadians own a credit card. Most of these cards provide some type of reward, such as getting cashback or aeroplan points for every dollar you spend.
The purpose of this application is to:
- Allow the user to create a list of credit cards they are interested in;
- View and modify the credit cards in this list; and
- Get a recommendation for the best credit card optimized to their personal monthly spending.
The optimized recommendation will account for the difference in value between reward types by converting each reward type to an equivalent $ value.
Here is an image of what it looks like to use the application
This project is of interest to me because for years I simply had a basic credit card from my bank. But recently, I discovered that based on my current spending I could get hundreds of dollars in rewards more if I had a different credit card from a different bank.
When I first started assessing other credit card options, I utilized excel. However, it was a very tedious process, and begged to be automated. Hence, the idea for this Credit Card Optimizer application was born.
This application will be used by people who want to keep track of multiple different credit cards that they are considering getting. In addition, the application will be used be people who want to optimize their credit card choice by minimizing fees while maximizing rewards.
Key user stories that will be implemented in this application include:
- As a user, I want to be able to add/remove credit cards to/from a list of credit cards I'm considering getting. At minimum, a credit card will have a name, annual fee, and reward rate.
- As a user, I want to be able to select a credit card from the list of credit cards and view/modify its details.
- As a user, I want to be able to enter my monthly credit card spending.
- As a user, I want to be able to receive a recommendation of the credit card that will give me the highest reward value based on my monthly spending.
- As a user, I want the option to save the changes made to my credit cards, rewards, and spending information to file.
- As a user, I want the option to load my saved credit cards, rewards, and spending information from file.
- Credit cards often carry high interest rates. You should avoid carrying a balance whenever possible.
- The purpose of this application is not to encourage you to spend more just to earn more rewards. It is not worth spending money you don't have just to earn a few extra dollars in rewards.
- For the sake of simplicity and equal comparison, this project focuses solely on the rewards earned through regular spending. Limited time offers associated with specific credit cards such as signup bonuses have not been considered. Similarly, less tangible perks such as airport lounge access and VIP status have not been accounted for.
- Incorporated elements of code from UBC CPSC210 - Json Serialization Demo. Accessed online March 7, 2023 at: https://github.students.cs.ubc.ca/CPSC210/JsonSerializationDemo
- Incorporated elements of code from UBC CPSC210 - Smarthome Project. Accessed online March 21, 2023 at: https://github.students.cs.ubc.ca/CPSC210/LongFormProblemStarters