🇺🇸 English | 🇧🇷 Português
Your money, your rules.
Track expenses, monitor investments, and make smarter financial decisions — all in an elegant and intuitive interface.
- 📄 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
- Node.js 18+
- Firebase account (free)
- GitHub account (for GitHub Actions)
# 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
.envfile. See the configuration section below.
| 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) |
fin-track uses an automated pipeline to fetch historical stock data:
- Frontend requests data and creates a "pending" document in Firestore
- GitHub Actions is triggered via repository dispatch
- yfinance fetches historical data from Yahoo Finance
- Firestore stores the data with a 24-hour cache
- Frontend displays the charts instantly
- Create a service account in Firebase Console
- Generate a GitHub token with
reposcope - Add
FIREBASE_SERVICE_ACCOUNTto repository secrets - Configure
VITE_GITHUB_TOKENin the frontend.env
A scheduled workflow updates the data daily at 2 AM UTC to ensure information is always up to date. 🔄
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.
MIT © [Marcos]
Made with ❤️ and ☕ • Back to top ↑