Skip to content

jayes97/ExpenseTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CC-ExpenseTracker

ExpenseTracker is a privacy-first iOS app that reads transaction emails from Gmail, extracts card spends, and shows them in a clean on-device dashboard.

The app is designed around a simple idea: your data should stay on your phone. Gmail access is read-only, processing happens locally, and the app does not send your financial data to the author or any backend.

What It Does

  • Signs in with Google using Gmail read-only access
  • Reads transaction emails directly on the device
  • Extracts useful transaction details from supported bank email formats
  • Stores parsed transactions locally on the device
  • Shows dashboards, recent transactions, spending by category, and card summaries
  • Lets you manage cards, sender rules, and sync state from inside the app

Privacy

  • Gmail permission requested by the app is read-only: https://www.googleapis.com/auth/gmail.readonly
  • Tokens are stored in the iOS Keychain on the device
  • Parsed transaction data is stored locally on the device
  • No analytics, no cloud sync, and no server-side storage are used by this project
  • Raw email content is processed in memory and is not intended to be uploaded anywhere

If you trust the author and prefer not to build the project yourself, you can install the app from the iOS App Store when it is available there and grant Gmail read access during sign-in. Even then, the app is built so that your Gmail data and parsed transaction data remain on your device, and the author does not have a built-in way to view or use that personal data.

How It Works

  1. The app signs in with Google OAuth using a client you configure for iOS.
  2. It requests read-only access to Gmail.
  3. Matching transaction emails are fetched from Gmail.
  4. Transaction details are parsed locally.
  5. Results are stored in local app storage and displayed in the dashboard.

Run It On Your Apple Device

Requirements

  • A Mac with Xcode installed
  • An Apple ID for signing to your personal device
  • An iPhone or iPad if you want to test on real hardware
  • A Google Cloud project with an iOS OAuth client

1. Clone the project

git clone <your-repo-url>
cd ExpenseTracker

2. Create your local secrets file

Copy the example file:

cp ExpenseTracker/Config/Secrets.swift.example ExpenseTracker/Config/Secrets.swift

Then update ExpenseTracker/Config/Secrets.swift with:

  • Your Google iOS OAuth client ID
  • Your Google redirect URI

This file is gitignored and should never be committed.

3. Create a Google OAuth client for iOS

In Google Cloud Console:

  1. Open APIs & Services
  2. Go to Credentials
  3. Create an OAuth 2.0 Client ID
  4. Choose application type iOS
  5. Use your iOS bundle identifier

You will get a client ID that looks like:

YOUR_CLIENT_ID.apps.googleusercontent.com

Your redirect URI should look like:

com.googleusercontent.apps.YOUR_CLIENT_ID_PREFIX:/oauth2redirect

4. Update the URL scheme in Info.plist

The callback URL scheme in ExpenseTracker/Info.plist must match the reversed client ID for your Google OAuth app.

If you use your own Google credentials, replace the existing scheme with your own reversed client ID.

5. Open the project in Xcode

Open:

ExpenseTracker.xcodeproj

Then in Xcode:

  1. Select the ExpenseTracker target
  2. Set your Team under Signing & Capabilities
  3. Confirm the bundle identifier matches your setup
  4. Choose your iPhone or iPad as the run destination

6. Build and run

Press Run in Xcode. On first launch:

  1. Sign in with Google
  2. Grant Gmail read-only access
  3. Add or review supported sender addresses if needed
  4. Trigger sync and review transactions on the dashboard

Notes For Anyone Using The App

  • This app is intended to be privacy-first and local-first
  • Gmail access is only used to read transaction emails needed for parsing
  • The author does not operate a backend for storing your mailbox or transactions
  • Your trust decision should still be your own, and you should review the code or build it yourself if you want maximum assurance

Git Safety

The repository is set up so local secrets and local Xcode user data should not be committed. In particular:

  • ExpenseTracker/Config/Secrets.swift should stay local
  • xcuserdata should stay out of git
  • Generated build output and local databases should stay out of git

Project Status

This is an app-directory project intended for local development in Xcode. If you plan to share it publicly, review:

  • OAuth app configuration
  • Supported sender rules and parser coverage
  • App Store privacy disclosures
  • Wording in the sign-in and privacy experience

About

This code/App can track your all credit card expenses at single place.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages