# Stock Bot Trading Platform ## Project Purpose This is an advanced trading bot platform with a microservice architecture designed for automated stock trading. The system includes: - Market data ingestion from multiple providers (Yahoo Finance, QuoteMedia, Interactive Brokers, WebShare) - Data processing and technical indicator calculation - Trading strategy development and backtesting - Order execution and risk management - Portfolio tracking and performance analytics - Web dashboard for monitoring ## Architecture Overview The project follows a **microservices architecture** with shared libraries: ### Core Services (apps/) - **data-ingestion**: Ingests market data from multiple providers - **data-pipeline**: Processes and transforms data - **web-api**: REST API service - **web-app**: React-based dashboard ### Shared Libraries (libs/) **Core Libraries:** - config: Environment configuration with Zod validation - logger: Structured logging with Loki integration - di: Dependency injection container - types: Shared TypeScript types - handlers: Common handler patterns **Data Libraries:** - postgres: PostgreSQL client for transactional data - questdb: Time-series database for market data - mongodb: Document storage for configurations **Service Libraries:** - queue: BullMQ-based job processing - event-bus: Dragonfly/Redis event bus - shutdown: Graceful shutdown management **Utils:** - Financial calculations and technical indicators - Date utilities - Position sizing calculations ## Database Strategy - **PostgreSQL**: Transactional data (orders, positions, strategies) - **QuestDB**: Time-series data (OHLCV, indicators, performance metrics) - **MongoDB**: Document storage (configurations, raw API responses) - **Dragonfly/Redis**: Event bus and caching layer ## Current Development Phase Phase 1: Data Foundation Layer (In Progress) - Enhancing data provider reliability - Implementing data validation - Optimizing time-series storage - Building robust HTTP client with circuit breakers