• Home
  • Skills
  • Work
  • Blog
  • About
  • Contact

Payment Tracker

Java

Requirements

Create a simplified Truebill-like clone that will keep track of your subscriptions and payments. The program should store the information on the local machine in separate file to retain the data for later use and organize data when run. The program should also have the option add, edit, and remove items from the payments list. Useful information that is calculated should also be incorporated. Budgeting is nice benefit. The goal is to use all native libraries of Java to make the program.

Description

The PaymentTracker program is built entirely on Java and uses some libraries such as ArrayList, PrintWriter, Scanner, and Error handling libraries. The program heavily relies on the object-orientated nature of Java, using the idea of classes and algorithms to accomplish the requirements of the program. Apart from organizing the data alphabetically by category and by highest price in each category, the program also displays useful information such as monthly, yearly, and upcoming payments (all managed by their associated methods). The program also incorporates a budgeting feature which allows the user to keep their monthly payments in check. The budgeting feature gives the user suggestions on which payments to remove (taking into account price and payment importance), if the total monthly amount exceeds budget.

Challenges

  1. Creating the command line of the program and attempting to capture as many errors or incorrect inputs as possible.
    1. SOLUTION: Mostly excessive error handling and catch method blocks used.
  2. Provide useful suggestions which the user will most likely employ to meet his set budget (or change budget).
    1. SOLUTION: Use subset algorithm to formulate combinations of payments which could meet the difference between the budget and exceeding amount. Also taking into account the importance and stored rank of the payment.


View on GitHub | ↩ Back to Projects

Site by Maxim Shelepov. Icons by Icons8.