Combines fundamental metrics, technical indicators, news sentiment, and Gemini LLM reasoning into a composite investment score.
QuantaMine/
├── backend/ FastAPI (Python 3.11)
│ └── app/
│ ├── main.py SSE streaming API
│ ├── analyzer.py Scoring engine
│ └── models.py Pydantic models
├── frontend/ Next.js 15 + TailwindCSS
│ └── app/
│ ├── page.tsx Main dashboard
│ └── components/ StockCard, ScoreBar, etc.
├── docker-compose.yml
└── .env.example
| Component | Weight | Source |
|---|---|---|
| Algo Score | 50% | Value + Quality + Risk + Momentum |
| Sentiment | 20% | FinBERT on NewsAPI headlines |
| LLM Confidence | 30% | Gemini reasoning |
Ratings: Strong Buy (≥80) · Buy (≥65) · Hold (≥45) · Avoid (<45)
cp .env.example .env
# Fill in GEMINI_API_KEY, NEWSAPI_KEY, HUGGINGFACE_API_KEYdocker compose up --buildBackend:
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000Frontend:
cd frontend
npm install
npm run dev| Endpoint | Method | Description |
|---|---|---|
/health |
GET | Health check |
/api/validate |
POST | Validate ticker symbols |
/api/analyze/stream/live |
POST | SSE streaming analysis |
curl -X POST http://localhost:8000/api/analyze/stream/live \
-H "Content-Type: application/json" \
-d '{"tickers": ["AAPL", "MSFT", "NVDA"]}'- Deploy backend to Railway or Render
- Set
NEXT_PUBLIC_API_URLto your backend URL - Deploy frontend to Vercel
- Real-time streaming — results appear as each ticker is analyzed via SSE
- 6-pillar scoring — Value, Quality, Risk, Momentum, Sentiment, AI
- Gemini reasoning — natural language explanation per stock
- Interactive UI — expandable cards, sortable table, CSV export
- Docker ready — single
docker compose upto run everything