Project Description

Implements an application for tracking my personal credit card activity over multiple years.

The project also integrates with the API of You Need A Budget (YNAB), a service for budgeting one’s finances.

As a result, the application allows for quick and easy syncing with my personal YNAB account.

Features

Supports tracking activity over multiple years.
Warns the user of inactive credit cards.
Integrates with YNAB for quick and easy tracking.

Read PDF for even more features.

Motivation

Often, as one increasingly opens new credit cards with better reward structures, older and less rewarding cards lose their appeal. Naturally, in this case, most would prefer to shift focus to their newer cards.

However, as the older cards are used less and less, or perhaps forgotten altogether, these cards may face account inactivity. If the period of inactivity extends long enough, then the financial institution may close the account.

I had first conceived of a tracking solution employing Excel to help prevent account closures. However, the initial solution was written using Visual Basic for Applications (VBA) which introduced difficulty when I aspired to make improvements. Furthermore, while Excel can be extremely intuitive due to its ubiquity, the application is quite inefficient and slow compared to a specialized solution.

Design Goals

  • Remove the dependence on Excel and VBA by porting the initial solution to Python.
  • Retain and adapt useful features of Excel, namely its grid of cells.
  • Maximize the longevity of the solution by minimizing the number of Python dependencies.
  • Improve the solution’s speed and footprint.

Benefits

  • Provides a lightweight application for tracking credit card usage.
  • Integrates with my personal YNAB account, allowing for an effortless sync with the financial service.
  • Ensures a long-term solution by minimizing Python dependencies, with the most likely point of failure being the ynab-client module.

Notable Milestones & Roadblocks

Dependencies

Languages

  • Python 3.6

Python

  • pyqt5
  • ynab-client