56 lines
1.5 KiB
Markdown
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)
|