A modern full-stack personal finance application that combines real-time transaction tracking with AI-powered predictive analytics to help users understand spending habits, optimize budgets, and achieve financial goals.
- Automatic Transaction Categorization - AI categorizes expenses using NLP and machine learning
- Real-time Budget Tracking - Monitor spending across categories with visual dashboards
- Smart Alerts - Get notified about overspending, unusual activity, and budget milestones
- Multi-source Data Import - Manual entry, bank API integration, and CSV imports
- Expense Forecasting - Predict future spending based on historical patterns
- Budget Optimization - ML-powered recommendations for savings opportunities
- Anomaly Detection - Identify unusual transactions automatically
- Adaptive Learning - System improves categorization accuracy over time
- Interactive spending breakdowns by category and time period
- Income vs expense trends with predictive insights
- Goal tracking with progress visualization
- Exportable financial reports
┌─────────────────────────────────────────────┐
│ Frontend (React + TS) │
│ - Dashboard with Recharts visualizations │
│ - Transaction management interface │
│ - Budget goal setting & tracking │
└──────────────────┬──────────────────────────┘
│ REST API
┌──────────────────▼──────────────────────────┐
│ Backend (Node.js + Express + TS) │
│ - JWT Authentication & Authorization │
│ - Transaction CRUD operations │
│ - Budget goal management │
│ - Alert generation system │
└────┬──────────────────────────┬─────────────┘
│ │
▼ ▼
┌────────────┐ ┌─────────────────────┐
│ PostgreSQL │ │ Python ML Service │
│ Database │ │ (FastAPI) │
│ │ │ - Categorization │
│ - Users │ │ - Forecasting │
│ - Txns │ │ - Recommendations │
│ - Budgets │ └─────────────────────┘
└────────────┘
- React 18 with TypeScript
- Tailwind CSS for styling
- Recharts for data visualization
- Axios for API communication
- React Router for navigation
- Lucide React for icons
- Node.js with Express.js
- TypeScript for type safety
- JWT for authentication
- bcrypt for password hashing
- PostgreSQL for relational data
- Redis for caching (optional)
- Python 3.10+ with FastAPI
- scikit-learn for ML models
- pandas & numpy for data processing
- joblib for model persistence
- Docker & Docker Compose
- GitHub Actions for CI/CD
- Vercel for frontend deployment
- Railway/Render for backend
node >= 18.0.0
python >= 3.10
postgresql >= 14- Clone the repository
git clone https://github.com/yourusername/budgetbot.git
cd budgetbot- Backend Setup
cd backend
npm install
cp .env.example .env
# Configure your .env file with database credentials
npm run migrate
npm run dev- ML Service Setup
cd ml_service
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload- Frontend Setup
cd frontend
npm install
cp .env.example .env
# Configure API endpoint
npm startBackend (.env)
DATABASE_URL=postgresql://user:password@localhost:5432/budgetbot
JWT_SECRET=your-super-secret-jwt-key
ML_API_URL=http://localhost:8000
PORT=3000Frontend (.env)
REACT_APP_API_URL=http://localhost:3000/apiPOST /api/auth/register- Create new user accountPOST /api/auth/login- Login and receive JWT tokenGET /api/auth/me- Get current user profile
GET /api/transactions- List transactions (with filters)POST /api/transactions- Create new transactionPUT /api/transactions/:id- Update transactionDELETE /api/transactions/:id- Delete transaction
GET /api/analytics/summary- Financial summary for periodGET /api/analytics/forecast- AI expense predictionsGET /api/analytics/recommendations- Budget optimization tips
POST /ml/categorize- Auto-categorize transactionPOST /ml/forecast- Generate expense forecastPOST /ml/recommend- Get personalized recommendations
- Algorithm: Random Forest Classifier + Keyword Matching
- Features: Transaction description, amount, day of week
- Accuracy: ~85% after user training
- Training: Improves with user corrections over time
- Algorithm: Time series analysis with moving averages
- Input: Historical transaction data (minimum 30 days)
- Output: 30-day spending predictions with confidence intervals
- Updates: Recalculated daily with new transaction data
- Algorithm: Rule-based system + statistical analysis
- Insights:
- Spending anomalies vs historical patterns
- Category overspending predictions
- Savings optimization opportunities
- Subscription consolidation suggestions
Dashboard with real-time analytics and AI recommendations displayed above
# Backend tests
cd backend
npm test
# ML service tests
cd ml_service
pytest
# Frontend tests
cd frontend
npm test- Bank API integrations (Plaid, Yodlee)
- Mobile apps (React Native)
- Multi-currency support
- Shared household budgets
- Investment portfolio tracking
- Tax estimation tools
- Bill reminder system
- Debt payoff calculator
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Arsenios Papachristos
- LinkedIn: linkedin.com/in/yourprofile
Built with ❤️ to help people take control of their financial future