FinIntel is an Indian market intelligence platform for portfolio monitoring, sector analysis, ticker research, charting, provider-key management, and document risk review. The current build focuses on safer defaults, stronger type safety, modular backend services, and clearer compliance language.
- Market overview for Nifty, Sensex, India VIX, and USD/INR
- Market desk with equities, currencies, chart modes, alerts, and news tape
- Sector performance heatmap for major Indian indices
- Portfolio valuation and holding-level PnL tracking
- Heuristic research summaries and momentum/behavior signals
- Portfolio-aware research context using holdings, exposure, and available broker cash when read-only sync is enabled
- LLM provider key entry and verification modal for OpenAI-compatible endpoints
- Document clause scanning for common legal and risk keywords
- Compliance, privacy, and risk-disclosure surfaces in the product
- Frontend: React, TypeScript, Vite
- Backend: FastAPI with modular routers, schemas, services, and SQLite persistence
- Data: Yahoo Finance market data and local application records
- Discovery: DuckDuckGo search for legal, news, blog, and public commentary inputs
- Session model: short-lived signed application sessions for protected write operations
- Provider keys: encrypted local storage for development verification, with production guidance to use environment secrets or an external secret manager
- Broker credentials are not collected or persisted in the application UI
- Provider keys should be supplied through environment variables or an external secret manager
- LLM provider keys can be entered and verified from the settings modal, but production should still prefer managed secrets
- Zerodha integration, when enabled, is read-only portfolio intelligence only; FinIntel does not place, modify, or cancel orders
- Interactive broker credentials such as request-token exchange secrets are intentionally unsupported in the application
- Protected write routes require a signed session token issued by the backend
- The product includes investment-risk, privacy, and terms disclosures
- The app is an informational research tool, not a brokerage or personalized advisory service
- CI is configured with GitHub Actions for type checks, build verification, and backend tests
# Backend
pip install -r backend/requirements.txt
python -m backend.main
# Frontend
npm install
npm run devOr run both with:
python run.pyUse .env.example as the baseline. Important variables:
VITE_API_BASE_URLFININTEL_APP_SECRETFININTEL_ALLOWED_ORIGINSFININTEL_DB_PATHFININTEL_ENABLE_BROKER_READONLYZERODHA_API_KEYZERODHA_ACCESS_TOKEN- LLM provider settings are managed from the app modal and stored encrypted locally for development-only convenience
ZERODHA_API_SECRETandZERODHA_REQUEST_TOKENshould remain unset for this product because interactive trading-oriented broker flows are blocked
backend/
api/
config/
database/
middleware/
schemas/
security/
services/
tests/
src/
components/
constants/
hooks/
services/
types/
- Frontend type check:
npx tsc -p tsconfig.app.json --noEmit - Backend compile check:
python -m compileall backend - Backend tests:
python -m unittest backend.tests.test_app - CI workflow:
.github/workflows/ci.yml - API readiness probe:
GET /ready
- Market data quality depends on third-party sources and may be delayed
- Real-time here means refreshed frequently from public sources; it is not a paid institutional feed
- Research outputs are heuristic summaries, not analyst-grade recommendations
- Company due diligence uses external search results for legal, news, blog, and public-commentary context and should be manually reviewed
- Broker sync is read-only and intended to enrich analytics with holdings, investment value, cash, and PnL context
- The current auth model is application-session based and still needs a fuller user/account security model for a true production rollout