Your Portfolio's Medical Report
AI-driven financial intelligence platform for Indian retail investors
FinStocks delivers a "Medical Report for Money" - comprehensive portfolio health scores and real-time Hinglish news updates designed specifically for Indian retail investors.
- π Portfolio Doctor - AI-powered health score with transparent factors: Diversification, Volatility, Overlap, and Cash Exposure
- π° Hinglish News Feed - Real-time market updates in Hinglish, filtered for your specific holdings
β οΈ Risk Signals - Visual indicators for concentration risks and duplicate holdings across funds- π Smart PDF Upload - Upload bank/demat statements for automatic portfolio extraction
- π€ AI Advice - Powered by LangGraph for intelligent investment insights
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND (Next.js) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Landing β β Onboarding β β Dashboard β β
β β Page β β Modal β β (Main) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β
β Components: PortfolioDoctor | HinglishNewsFeed | RiskSignals β
β β
β Auth: Clerk | Storage: Supabase | State: React Context β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β API Calls (fetch)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PYTHON BACKEND (FastAPI) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Portfolio β β News β β Advice β β
β β Analysis β β Processor β β Engine β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β
β LangGraph Pipeline | PDF Parser | LLM Integration (Groq) β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β EXTERNAL SERVICES β
β βββββββββββ ββββββββββββ βββββββββββ ββββββββββββ β
β β Supabaseβ β Groq β β Yahoo β β News β β
β β (DB) β β (LLM) β β Finance β β APIs β β
β βββββββββββ ββββββββββββ βββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Node.js 18+
- Python 3.10+
- Docker (optional)
git clone https://github.com/Soham-Donode/BitWise.git
cd BitWisecd frontend
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Edit .env.local with your credentials:
# - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
# - CLERK_SECRET_KEY
# - NEXT_PUBLIC_SUPABASE_URL
# - NEXT_PUBLIC_SUPABASE_ANON_KEY
# - NEXT_PUBLIC_API_URL
# Start development server
npm run devcd python-backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Copy environment variables
cp .env.example .env
# Edit .env with your credentials:
# - GROQ_API_KEY
# - SUPABASE_URL
# - SUPABASE_KEY
# Start FastAPI server
python api.py
# Or with uvicorn:
uvicorn api:app --reload --port 8000- Create a new project at supabase.com
- Run the SQL schema from
python-backend/docs/supabase_schema.sql - Copy your project URL and anon key to environment variables
docker-compose up --buildBitWise/
βββ frontend/ # Next.js Frontend
β βββ src/
β β βββ app/ # App Router pages
β β β βββ page.tsx # Landing page
β β β βββ dashboard/ # Dashboard pages
β β β βββ (auth)/ # Auth pages (Clerk)
β β βββ components/
β β β βββ dashboard/ # Dashboard components
β β β β βββ PortfolioDoctor.tsx
β β β β βββ HinglishNewsFeed.tsx
β β β β βββ RiskSignals.tsx
β β β β βββ PortfolioOverview.tsx
β β β β βββ SafetyDisclaimer.tsx
β β β βββ onboarding/ # Onboarding modal
β β β βββ ui/ # Reusable UI components
β β βββ lib/
β β β βββ api.ts # API client
β β β βββ supabase.ts # Supabase client
β β βββ layout/ # Layout components
β βββ .env.example # Environment template
β
βββ python-backend/ # Python Backend
β βββ api.py # FastAPI endpoints
β βββ main.py # LangGraph pipeline
β βββ services/ # Service modules
β β βββ advice.py
β β βββ news.py
β β βββ portfolio.py
β β βββ strategy.py
β βββ docs/
β β βββ supabase_schema.sql # Database schema
β βββ requirements.txt
β
βββ docker-compose.yml # Docker configuration
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
# Backend API
NEXT_PUBLIC_API_URL=http://localhost:8000# LLM
GROQ_API_KEY=gsk_...
# Supabase
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_KEY=eyJ...
# Optional
FINNHUB_API_KEY=...
NEWS_API_KEY=...FinStocks uses a modern "Grok-style" dark theme with glassmorphism effects:
- Primary: Brand Blue (
#465fff) - Accent: Purple (
#7c3aed) - Success: Emerald (
#10b981) - Warning: Amber (
#f59e0b) - Error: Red (
#ef4444)
All components are built with:
- TailwindCSS v4
- Glassmorphism effects
- Smooth transitions
- Dark mode first
FinStocks provides intelligence and summaries only. We do not offer personalized buy/sell investment advice.
- Not SEBI Registered: FinStocks is not a registered investment advisor
- AI-Generated: Portfolio scores and news summaries are generated by AI
- Consult a Professional: Always consult a SEBI-registered financial advisor
- Investment Risk: Investments in securities are subject to market risks
- Landing Page with FinStocks branding
- 3-step onboarding modal
- Portfolio Doctor dashboard
- Hinglish News Feed
- Risk Signals component
- Safety Disclaimer
- Real PDF parsing implementation
- Live market data integration
- Push notifications for news
- Mobile app (React Native)
- Multi-language support
Contributions are welcome! Please read our Contributing Guide first.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- TailAdmin - Dashboard template foundation
- Clerk - Authentication
- Supabase - Database and storage
- Groq - LLM inference
- LangGraph - AI workflow orchestration