Skip to content

A finance tracker application to help users manage their expenses and investments efficiently.

Notifications You must be signed in to change notification settings

Droppicode/Finance-Tracker

Repository files navigation

💰 fin-track

🇺🇸 English | 🇧🇷 Português

Your money, your rules.
Track expenses, monitor investments, and make smarter financial decisions — all in an elegant and intuitive interface.

React Vite Tailwind Firebase License


✨ Features

  • 📄 Bank Statement Upload — Upload PDFs and automatically classify transactions
  • 📊 Expense Analysis — Visualize your spending by category with interactive charts
  • 💹 Investment Portfolio — Track your assets with real-time quotes via yfinance
  • 🌙 Dark Mode — Modern interface that adapts to your preference
  • 🔐 Secure Authentication — Login via JWT or Google OAuth
  • 📱 Responsive — Works perfectly on any device

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • Firebase account (free)
  • GitHub account (for GitHub Actions)

Installation

# Clone the repository
git clone https://github.com/your-username/fin-track.git
cd fin-track/client

# Configure environment variables
cp .env.example .env
# Edit .env with your Firebase and GitHub credentials

# Install dependencies and run the project
npm install
npm run dev

🎉 Navigate to http://localhost:5173 and start tracking your finances!

💡 Tip: You'll need to set up a Firebase project and add the credentials to the .env file. See the configuration section below.

🏗️ Tech Stack

Layer Technologies
Frontend React 19, Vite, Tailwind CSS, Recharts, Lucide Icons
Backend Firebase (Firestore, Auth), Vercel Functions (Serverless)
Cloud GitHub Actions (data pipeline with yfinance)
Mobile Capacitor (Android/iOS)

📈 Historical Stock Data

fin-track uses an automated pipeline to fetch historical stock data:

  1. Frontend requests data and creates a "pending" document in Firestore
  2. GitHub Actions is triggered via repository dispatch
  3. yfinance fetches historical data from Yahoo Finance
  4. Firestore stores the data with a 24-hour cache
  5. Frontend displays the charts instantly

Configuration

  1. Create a service account in Firebase Console
  2. Generate a GitHub token with repo scope
  3. Add FIREBASE_SERVICE_ACCOUNT to repository secrets
  4. Configure VITE_GITHUB_TOKEN in the frontend .env

A scheduled workflow updates the data daily at 2 AM UTC to ensure information is always up to date. 🔄

🤖 AI-Assisted Development

This project was an experiment in AI-assisted programming. A significant portion of the codebase was generated with the help of Google Gemini, with human oversight for review, integration, and testing.

📝 License

MIT © [Marcos]


Made with ❤️ and ☕ • Back to top ↑

About

A finance tracker application to help users manage their expenses and investments efficiently.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published