Inspiration

Had to work around the Capital One problem statement and I've always wanted to do some sort finance tracking and managing app.

What it does

  1. Import and a view CSVs, very limited as it was set up on top of the bank transaction CSV i had available
  2. Add and remove statements
  3. Export the data back into a CSV, same one or create a new one
  4. Let the user query the database with very simple prepared queries that the user can select between
  5. Replace the current CSV in the database with a new one

How we built it

Started researching about the following technologies, sqlite3 and the csv and sqlalchemy python libraries. A few more were looked at but those seemed the simplest to just start programming.

  1. First the importing into a simple lists of tuples was created
  2. Then the database was set up and the tuples were added
  3. Other features were added
  4. Queries were done last

Challenges we ran into

One challenge is definitely validation of all user input. There is a lot client-user interaction and not all of it is perfectly validated. Also, this program is very much a proof of concept on working with CSV's, currently it only works on the CSV's i can download from my bank. If others have the same format then it is fine but this system isn't universal.

Working with spaghetti code definitely.

Accomplishments that we're proud of

All the functionality works as expected, IF the user inputs things correctly. For a solo job a lot of functionality was added and all of it easily usable, despite it being a CLI application.

The part of the project i'm most proud of is actually creating the database, table and table schema. Something I've never done before and I'm very happy i made it operational.

What we learned

  1. How to set up sqlite
  2. How to create, manipulate and remove tables in databases through python
  3. How to use the csv and sqlalchemy libraries
  4. Improved my use of python's basics

What's next for Bank APIs Bad

  1. Allowing for different CSV is a really big one as that would require completing changing the database creation code but would be very interesting
  2. No need to reset tables when new CSVs are added. If it is the same account just add to the current table and new accounts would make new tables 3.Allow then for multi-relation queries

Built With

Share this project:

Updates