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
- Drag-and-drop CSV uploader
- 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
- CSV parsing with
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
- axios
- flask
- pandas
- python
- randomforestclassifier
- react
- typescript
Log in or sign up for Devpost to join the conversation.