Files
rmtPocketWatcher/.kiro/steering/tech.md
2025-12-14 21:53:46 -05:00

62 lines
1.7 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 (Flutter Cross-Platform App)
- **Framework**: Flutter 3.38+
- **Language**: Dart 3.10+
- **State Management**: Provider
- **Charts**: fl_chart
- **Styling**: Material Design 3
- **WebSocket**: web_socket_channel
- **Storage**: shared_preferences + sqflite
- **Notifications**: flutter_local_notifications
- **Window Management**: window_manager (desktop)
- **Platforms**: Windows, macOS, Linux, Android, iOS
## 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 (Flutter)
flutter run -d windows # Run on Windows
flutter run -d android # Run on Android
flutter run -d ios # Run on iOS
flutter build windows # Build Windows release
flutter build apk # Build Android APK
flutter pub get # Install dependencies
flutter doctor # Check setup
# 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)