# Project Structure ## Root Directory ``` stock-bot/ ├── apps/ # Microservice applications │ ├── data-ingestion/ # Market data ingestion service │ ├── data-pipeline/ # Data processing pipeline │ ├── web-api/ # REST API service │ └── web-app/ # React dashboard ├── libs/ # Shared libraries │ ├── core/ # Core functionality │ │ ├── config/ # Configuration management │ │ ├── logger/ # Logging infrastructure │ │ ├── di/ # Dependency injection │ │ ├── types/ # Shared TypeScript types │ │ └── handlers/ # Common handler patterns │ ├── data/ # Database clients │ │ ├── postgres/ # PostgreSQL client │ │ ├── questdb/ # QuestDB time-series client │ │ └── mongodb/ # MongoDB document storage │ ├── services/ # Service utilities │ │ ├── queue/ # BullMQ job processing │ │ ├── event-bus/ # Dragonfly event bus │ │ └── shutdown/ # Graceful shutdown │ └── utils/ # Utility functions ├── database/ # Database schemas and migrations ├── scripts/ # Build and utility scripts ├── config/ # Configuration files ├── monitoring/ # Monitoring configurations ├── docs/ # Documentation └── test/ # Global test utilities ## Key Files - `package.json` - Root package configuration - `turbo.json` - Turbo monorepo configuration - `tsconfig.json` - TypeScript configuration - `eslint.config.js` - ESLint rules - `.prettierrc` - Prettier formatting rules - `docker-compose.yml` - Infrastructure setup - `.env` - Environment variables ## Monorepo Structure - Uses Bun workspaces with Turbo for orchestration - Each app and library has its own package.json - Shared dependencies at root level - Libraries published as `@stock-bot/*` packages ## Service Architecture Pattern Each service typically follows: ``` service/ ├── src/ │ ├── index.ts # Entry point │ ├── routes/ # API routes (Hono) │ ├── handlers/ # Business logic │ ├── services/ # Service layer │ └── types/ # Service-specific types ├── test/ # Tests ├── package.json └── tsconfig.json ```