AI-Powered Financial Market Analysis Platform
Stock Pulse AI is a comprehensive financial analysis platform that combines technical analysis, sentiment analysis, and real-time market data to provide intelligent insights for stock market investments. The platform uses advanced AI models to analyze news sentiment, social media trends, SEC filings, and technical indicators to generate actionable investment intelligence.
- Features
- Technologies Used
- System Requirements
- Installation
- Usage
- API Documentation
- Project Structure
- Development Roadmap
- Contributing
- License
- Technical Analysis: 9-factor scoring system rating stocks from -9 to +9
- Sentiment Analysis: Multi-source sentiment scoring using AI/NLP models
- Real-time Market Data: Live stock prices, charts, and market indicators
- Interactive Visualizations: Candlestick charts, line graphs, and technical indicators
- News Sentiment: Analysis of financial news using FinBERT and VADER models
- Social Media Sentiment: Reddit and social platform sentiment tracking
- SEC Filings Analysis: Automated analysis of company filings and reports
- Multi-timeframe Analysis: 1-day, 1-month, 1-year predictions and trends
- RESTful API: FastAPI backend with automatic OpenAPI documentation
- Modern Frontend: React-based dashboard with responsive design
- Real-time Updates: Live market data and sentiment updates
- Authentication: Secure user management and API access
- Market Coverage: S&P 500, NASDAQ, and individual stock analysis
- FastAPI - Modern, fast web framework for building APIs
- Python 3.9+ - Core programming language
- PostgreSQL - Primary database for data storage
- SQLAlchemy - Database ORM and query builder
- PyTorch - Deep learning framework for AI models
- Transformers (Hugging Face) - Pre-trained NLP models (FinBERT)
- VADER Sentiment - Rule-based sentiment analysis
- scikit-learn - Machine learning algorithms and tools
- pandas - Data manipulation and analysis
- yfinance - Yahoo Finance API for stock data
- NewsAPI - Financial news and sentiment data
- Reddit API (PRAW) - Social sentiment analysis
- SEC EDGAR - Official company filings and reports
- React 18 - Frontend framework
- Plotly.js - Interactive data visualizations
- React Router - Client-side routing
- Recharts - Additional charting library
- Docker - Containerization
- Git - Version control
- GitHub Actions - CI/CD pipelines
- Python: 3.9 or higher
- Node.js: 16.0 or higher
- npm: 8.0 or higher
- Memory: 4GB RAM (8GB recommended)
- Storage: 2GB free space
- Operating System: macOS, Linux, or Windows 10/11
- Python: 3.10+
- Memory: 8GB+ RAM for optimal AI model performance
- GPU: Optional, for faster AI model inference
- NewsAPI Key: For financial news data (free tier available)
- Internet Connection: For real-time market data and API access
git clone https://github.com/smundhra-git/Stock_PulseAI.git
cd Stock_PulseAI# Create and activate conda environment
conda create -n stockpulse python=3.9 -y
conda activate stockpulse
# OR using venv
python -m venv stockpulse_env
source stockpulse_env/bin/activate # On Windows: stockpulse_env\Scripts\activatepip install -r requirements.txtCreate a .env file in the root directory:
# Required API Keys
NEWSAPI=your_newsapi_key_here
# Optional: Database Configuration
DATABASE_URL=postgresql://username:password@localhost/stockpulse
# Optional: Reddit API (for enhanced social sentiment)
REDDIT_CLIENT_ID=your_reddit_client_id
REDDIT_CLIENT_SECRET=your_reddit_client_secretGet your NewsAPI key:
- Visit NewsAPI.org
- Sign up for a free account
- Copy your API key to the
.envfile
cd frontend
npm install# From project root directory
conda activate stockpulse # if using conda
uvicorn fastapi_service.main:app --reload --port 8080# From frontend directory
cd frontend
npm start- Frontend Dashboard: http://localhost:3000
- API Documentation: http://localhost:8080/docs
- Alternative API Docs: http://localhost:8080/redoc
- Technical Analysis:
GET /api/stock/{ticker}/technical - Sentiment Analysis:
GET /api/stock/{ticker}/sentiment - Stock Charts:
GET /api/stock/{ticker}/graph - Market Data:
GET /api/sp500-realtime
curl -X 'GET' \
'http://localhost:8080/api/stock/AAPL/sentiment' \
-H 'accept: application/json'The FastAPI backend automatically generates interactive API documentation:
- Swagger UI: http://localhost:8080/docs
- ReDoc: http://localhost:8080/redoc
These interfaces allow you to:
- Explore all available endpoints
- Test API calls directly in the browser
- View request/response schemas
- Download OpenAPI specifications
Stock_PulseAI/
βββ src/ # Core application logic
β βββ api_handler.py # API route handlers
β βββ sentiment/ # Sentiment analysis modules
β βββ technical/ # Technical analysis tools
β βββ database/ # Database operations
βββ fastapi_service/ # FastAPI application
β βββ main.py # FastAPI app configuration
β βββ routes.py # API route definitions
βββ frontend/ # React frontend application
β βββ src/ # React source code
β βββ public/ # Static assets
β βββ package.json # Frontend dependencies
βββ requirements.txt # Python dependencies
βββ .env # Environment variables
βββ README.md # Project documentation
- FastAPI backend with sentiment analysis
- React frontend foundation
- Technical analysis (9-factor scoring)
- News and Reddit sentiment analysis
- Real-time market data integration
- Interactive API documentation
- Enhanced FinBERT model integration (PyTorch 2.6+ compatibility)
- Advanced technical indicators
- User authentication and portfolios
- Macroeconomic data integration (FRED API)
- AI-powered price predictions
- Portfolio optimization tools
- Mobile-responsive enhancements
- Real-time notifications and alerts
- Advanced charting and analytics
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you have any questions or run into issues, please open an issue on GitHub.
Made with β€οΈ for smarter financial analysis