Skip to content

walterdiazesa/moneytracker-api

Repository files navigation

MoneyTracker Logo

A Progressive Web App (PWA) designed to monitor my personal expenses by consolidating expenditures from various accounts and banks into one unified platform.

MoneyTracker-API

🛠: Prisma, NextAuth, Express, Express-Insider

📚: PlanetScale (Frankfurt), Render (Frankfurt) (alternative: Railway)

📱: https://github.com/walterdiazesa/moneytracker-app

Description

Backend for MoneyTracker, I travel a lot, I have different bank accounts in different countries, different currencies, each of them have their own app to track the expenses of the card you have with them, with a poorly categorization system, so if I want to know How much I had spend?, How much I had saved?, and How much am I able to spend before getting broke? I would need to check all the different bank accounts, manually exchange currency rates for each of them and filter.

Other apps in the market solve this issue, the problem of them are:

  • You can add your bank account(s), but almost all of them are only for 🇺🇸🦅 folks.
  • If you're not from USA, you need to manually introduce all your expenses, even if they come from a credit/debit card.
  • You need to manually exchange the currency to match values with your other expenses

I needed to centralize all my expenses from different sources, and they all shared one thing in common, they send mails as soon as you purchase something

flowchart TB
    bankA("🏦") --> Mail("📪")
    bankB("🏦") --> Mail("📪")
    bankC("🏦") --> Mail("📪")
    Mail("📪") --> MoneyTracker("📱")
Loading

So this app is basically

  • listening for those mails
  • parse them
  • exchange currency
  • have the possibility to manually add cash expenses
  • provide insights and charts about my expenses
MoneyTracker-Demo-Desktop-PWA.webm
edace729-8daa-479c-8623-ba2ecbd1599d.MP4

Data Backup

I run a cronjob daily to save a backup of my transactions, Planetscale also do this for me but it's just in case

echo "curl '<API URL>/transaction/' -o moneytracker-transaction-bk.json && curl '<API URL>/category/' -o moneytracker-category-bk.json && curl '<API URL>/starttime/' -o moneytracker-starttime-bk.json" > moneytracker-bk-cron.sh

(Give execute permission)

chmod +x moneytracker-bk-cron.sh

(Run cronjob every day at 4:30 pm)

crontab -e

(Remove asterisks backslash)

30 16 \* \* \* /Users/<user>/moneytracker-bk-cron.sh > /Users/<user>/moneytracker-cron.log > /Users/<user>/moneytracker-cron-err.log

About

API (Express REST + IMAP Listener) to track my expenses

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors