# Tschausepp - Jass Card Tracker ## Project Overview Mobile-first React web app for tracking Schaffhauser (Jass) card game rounds using camera and feature matching to detect and assign cards to players. ## Tech Stack - React 18 (lightweight runtime) - TensorFlow.js (lite mode, CDN-hosted, ~5MB) - HTML5 Camera API (Mobile-friendly) - localStorage (JSON format, max 100 games) ## Key Implementation Details ### Architecture - Component-based structure with 5 main screens: 1. Setup Screen - Player management and game configuration 2. Camera Screen - Live preview with card detection overlay 3. Detection Component - Card boundary detection using image processing 4. Assignment Component - Radial sector layout with auto-assignment 5. Results Screen - Score calculation and game results 6. History Screen - Game storage and export functionality ### Development Commands - `npm run build` - Build production version - `npm run preview` - Preview production build - `npm run typecheck` - Run TypeScript type checking ### Development Server - A development server is always guaranteed to be running on localhost:5173 - **Do not start the development server manually under any circumstances** ### Camera & Detection - Uses HTML5 Camera API with environment-facing camera preference - Card detection implemented with custom image processing techniques - Suit identification (Schellen, Schilten, Eicheln, Rosen) via color analysis - Auto-assignment based on radial sector + nearest player calculation ### Data Storage - Games stored in localStorage with maximum of 100 games - Data structure follows: games → rounds → cards with player assignments - JSON format for export functionality ### Mobile-First Design - Responsive UI optimized for mobile devices - Touch-friendly controls and interfaces - Camera access optimized for mobile environment