Files
2025-12-03 18:00:10 -05:00

56 lines
1.5 KiB
Markdown

# Technology Stack
## Backend
- **Language**: TypeScript (Node.js)
- **Framework**: Fastify
- **Scraping**: Playwright (headless Chromium)
- **Database**: PostgreSQL + TimescaleDB extension
- **ORM**: Prisma or Drizzle
- **Job Scheduling**: Node Scheduler or BullMQ
- **WebSockets**: Native `ws` or Fastify WS plugin
- **Deployment**: Docker containers
## Frontend (Electron Desktop App)
- **Framework**: Electron 30+
- **UI Library**: NextJS? + TypeScript/TSX
- **Build Tool**: Vite
- **Styling**: TailwindCSS
- **Charts**: Recharts, ECharts, or TradingView Charting Library
- **State Management**: Zustand or Recoil
- **Auto-updates**: electron-updater
## Testing
- **Unit Tests**: Jest
- **E2E Tests**: Playwright
- **API Integration**: Supertest or Pact
## Common Commands
```bash
# Backend
npm run dev # Start development server
npm run build # Build TypeScript
npm run test # Run Jest tests
npm run scrape # Manual scrape trigger
# Frontend (Electron)
npm run dev # Start Electron in dev mode
npm run build # Build production app
npm run package # Package for distribution
npm run test # Run tests
# Database
npm run migrate # Run database migrations
npm run seed # Seed initial data
```
## Performance Requirements
- API latency < 50ms for standard queries
- Support 5000+ concurrent WebSocket connections
- Desktop app must handle 50k+ chart datapoints smoothly
- Scraping frequency: every 5 minutes (configurable)