| .. | ||
| config | ||
| data-ingestion | ||
| data-pipeline | ||
| scripts | ||
| web-api | ||
| web-app | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
Stock Trading Bot Application
A comprehensive stock trading bot application with multiple microservices for data ingestion, processing, and API access.
Architecture
The stock bot consists of the following services:
- Config: Centralized configuration management
- Data Ingestion: Handles real-time and historical data collection
- Data Pipeline: Processes and transforms market data
- Web API: RESTful API for accessing stock data
- Web App: Frontend user interface
Quick Start
Prerequisites
- Node.js >= 18.0.0
- Bun >= 1.1.0
- Turbo
- PostgreSQL, MongoDB, QuestDB, and Redis/Dragonfly running locally
Installation
# Install all dependencies
bun install
# Build the configuration package first
bun run build:config
Development
# Run all services in development mode (using Turbo)
bun run dev
# Run only backend services
bun run dev:backend
# Run only frontend
bun run dev:frontend
# Run specific service
bun run dev:ingestion
bun run dev:pipeline
bun run dev:api
bun run dev:web
Production
# Build all services (using Turbo)
bun run build
# Start with PM2
bun run pm2:start
# Check status
bun run pm2:status
# View logs
bun run pm2:logs
Configuration
Configuration is managed centrally in the config package.
- Default config:
config/config/default.json - Environment-specific:
config/config/[environment].json - Environment variables: Can override any config value
Health Checks
# Check all services health
bun run health:check
Database Management
# Run migrations
bun run db:migrate
# Seed database
bun run db:seed
Available Scripts
| Script | Description |
|---|---|
dev |
Run all services in development mode |
build |
Build all services |
start |
Start all backend services |
test |
Run tests for all services |
lint |
Lint all services |
clean |
Clean build artifacts and dependencies |
docker:build |
Build Docker images |
pm2:start |
Start services with PM2 |
health:check |
Check health of all services |
Service Ports
- Data Ingestion: 2001
- Data Pipeline: 2002
- Web API: 2003
- Web App: 3000 (or next available)
Environment Variables
Key environment variables:
NODE_ENV: development, test, or productionPORT: Override default service port- Database connection strings
- API keys for data providers
See config/config/default.json for full configuration options.