Building InvestTrack: A Journey into Full-Stack Finance

Inspiration

The idea for InvestTrack was born out of frustration. As someone who juggles multiple financial accounts—bank accounts, stock portfolios, and crypto holdings—I found myself constantly switching between apps to get a clear picture of my net worth. None of the existing solutions offered the depth I needed, especially when it came to tracking dividends and predicting future trends. I realized I needed a unified platform that not only tracked expenses but also provided intelligent insights into investments.

The Tech Stack

I chose a robust, scalable architecture to handle financial data securely and efficiently:

  • Backend: Java with Spring Boot for its enterprise-grade security and dependency injection.
  • Frontend: React Native (TypeScript) to provide a seamless mobile experience on both iOS and Android.
  • Database: Amazon DynamoDB for high-performance NoSQL storage, perfect for handling time-series market data.
  • Cloud Services:
    • AWS Forecast/Prophet: For machine learning-powered stock price predictions. ( I have used own in house machine learning as these are very classified data . Public LLM like OPENAI will not be a good option . Once we are into production , we can request for enterprise level self hosted LLM )
    • AWS SNS/SES: For reliable notifications and alerts.
    • Firebase: For authentication and real-time messaging.
  • Integrations:
    • Plaid: For bank account linking.
    • Alpha Vantage & Marketaux: For historical stock data and sentiment analysis.
    • RevenueCat: To manage subscription tiers and in-app purchases.
    • Binance/Coinbase: For cryptocurrency portfolio tracking.

Key Features

InvestTrack isn't just about viewing balances; it's about actionable intelligence:

  1. Unified Dashboard: Aggregates data from traditional banks, stock brokerages, and cryptocurrency exchanges into a single, real-time view.
  2. AI-Powered Predictions: Uses the Prophet forecasting model to predict future stock prices based on historical trends, helping users make data-driven decisions.
  3. Dividend Tracking: Automatically calculates upcoming dividend payouts, giving users a clear picture of their passive income stream.
  4. Sentiment Analysis: Integrates news sentiment data to provide context on market movements, flagging potential risks or opportunities.
  5. Smart Alerts: Customizable notifications for price targets, significant portfolio changes, and dividend arrivals.

Market Advantage

In a crowded fintech market, InvestTrack stands out by bridging the gap between simple expense trackers and complex trading platforms:

  • Holistic Wealth Management: Most apps focus on either budgeting or investing. InvestTrack combines both, acknowledging that spending habits and investment strategies are deeply interconnected.
  • Institutional-Grade Forensics for Retail Users: By bringing machine learning forecasting and sentiment analysis to individual investors, we democratize tools typically reserved for hedge funds.
  • Privacy-Centric Design: With local processing prioritization and secure, encrypted backend storage, user financial data remains protected.
  • Cross-Asset Capability: Seamlessly handling both traditional equities and cryptocurrencies is a necessity for the modern investor, yet few competitors do it well.

How I Built It

The development process was iterative and challenging. I started with the core backend, setting up the Spring Boot application and integrating basic authentication via Firebase. Once the foundation was solid, I moved on to the data layer, designing DynamoDB tables to store user portfolios and transaction histories.

Integrating third-party APIs was a major phase. I implemented services for Plaid and Alpha Vantage, ensuring that data synchronization was both accurate and efficient. To predict market trends, I built a Python-based forecasting service using the Prophet library, which I then integrated into the Java backend via command-line execution.

The frontend was built component by component, focusing on a clean, responsive UI. I used TypeScript to ensure type safety across the application, which significantly reduced runtime errors.

Challenges Faced

Building InvestTrack wasn't without its hurdles:

  1. Configuration Management: Managing sensitive credentials across different environments (local, Docker, ECS) proved tricky. A notable issue was the Firebase Service Account path configuration, which caused deployment failures when the application couldn't locate the file in the containerized environment. I learned the importance of consistent path management and classpath resource loading.

  2. Network Resilience: Handling network failures gracefully was critical, especially with mobile clients. Debugging simple errors like TypeError: Network request failed taught me to implement robust error handling and retry mechanisms in the API layer.

  3. Cross-Language Integration: Calling Python scripts from a Java backend for ML predictions introduced complexity in environment setup and process management. Ensuring the Python environment was correctly configured with all dependencies in the production Docker image was a key learning curve.

What I Learned

Throughout this project, I've deepened my understanding of distributed systems and cloud architecture. I learned that:

  • Logging is Essential: Detailed logs are often the only way to diagnose issues in a production environment.
  • Security First: Managing secrets properly is non-negotiable.
  • User Experience Matters: A powerful backend is useless if the frontend isn't responsive and intuitive.

InvestTrack is more than just code; it's a testament to solving real-world problems with modern technology.

Built With

Share this project:

Updates