Files
2025-12-14 21:53:46 -05:00

1.7 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 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

# 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)