1.5 KiB
1.5 KiB
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
wsor 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
# 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)