FinSight – Real ML. No APIs.

Inspiration

Most finance apps today call APIs and display results without transparency. We wanted to build something authentic — a web app that trains and uses a real machine learning model to classify stock risk without relying on any external AI APIs.

What it does

FinSight allows users to upload historical stock data in CSV format and instantly classifies the stock’s investment risk as Low, Medium, or High.
It features a Bloomberg-style interface with clean visualizations, risk indicators, and a drag-and-drop CSV uploader.

How we built it

  • Frontend: React + Vite + TypeScript + Tailwind CSS
    • Drag-and-drop CSV uploader
    • Axios integration with backend
    • Responsive, Bloomberg-inspired UI
    • Chart placeholders and risk cards
  • Backend: Python + Flask
    • CSV parsing with pandas
    • Feature engineering with ta (technical analysis library)
    • Risk classification using a trained RandomForestClassifier
    • Fully explainable and modular ML pipeline

Challenges we ran into

  • Engineering relevant features from raw CSVs without overfitting
  • Ensuring compatibility across stock formats (column mismatches, NaNs)
  • Getting Flask and frontend to communicate cleanly during local dev
  • Designing a premium finance UI without clutter

Accomplishments that we're proud of

  • Trained a real, fully custom ML model — no shortcut APIs
  • Built a clean, professional dashboard from scratch
  • Achieved explainable classification with consistent results
  • Seamlessly integrated model inference into a real-time web UI

What we learned

  • End-to-end ML deployment (from notebook to Flask to React)
  • How to extract real financial indicators (like RSI, moving averages)
  • How to design clean, high-impact UIs for data-heavy applications

Built With

Share this project:

Updates