# Chess Teaching Assistant - ChessPrism

## Project Overview
ChessPrism is a native macOS application designed to enhance chess learning and analysis by providing real-time visual feedback and move suggestions during online chess games. The application integrates with chess.com through screen capture and provides advanced analysis using Stockfish and custom machine learning models.

### Key Features
- Real-time board position recognition
- Visual move suggestions and threat analysis
- Integrated Stockfish engine analysis
- Customizable visual overlays
- Multi-monitor support
- Keyboard shortcut controls

## Current Development Status
### Completed Features
- Project architecture setup (MVVM pattern)
- Core screenshot capture functionality
- Basic board recognition using Vision framework
- Stockfish ARM64 integration
- Metal-based rendering pipeline foundation

### In Progress
- Advanced piece recognition model training
- Visual overlay system implementation
- Move suggestion system integration
- Performance optimization for real-time analysis

### Upcoming Features
- User settings and customization
- Advanced threat visualization
- Analytics and feedback system
- TestFlight distribution setup

## Technical Architecture
### Core Components
1. **Screenshot Capture Module**
   - Uses VisionKit and Screen Capture API
   - Handles multi-monitor scenarios
   - Implements keyboard shortcuts

2. **Board Position Analysis**
   - Vision framework + CoreML for computer vision
   - Real-time FEN conversion
   - Position validation system

3. **Stockfish Integration**
   - ARM64 optimized binary
   - Async/await interface
   - Position evaluation caching

4. **Visual Overlay System**
   - Metal-accelerated rendering
   - Transparent NSWindow implementation
   - Multiple visualization types

### Technology Stack
- **Languages**: Swift, Metal Shading Language
- **Frameworks**: SwiftUI, Vision, CoreML, Metal
- **Dependencies**: Stockfish 16, Create ML
- **Tools**: Xcode 16.2, Swift 6.0.3

## Development Environment Setup
### System Requirements
- **Hardware**: Apple Silicon (M1/M2/M3)
- **Memory**: 16GB+ RAM
- **GPU**: Metal 2+ support
- **OS**: macOS Ventura 13.0+

### Installation
1. Clone the repository:
   ```bash
   git clone https://gitea.example.com/chessprism.git
   cd chessprism
   ```

2. Install dependencies:
   ```bash
   brew install swiftlint
   ```

3. Open project in Xcode:
   ```bash
   open ChessPrism/ChessPrism.xcodeproj
   ```

4. Configure development settings:
   - Enable Metal API validation
   - Set up code signing
   - Configure entitlements

## Contribution Guidelines
### Code Style
- Follow Swift style guide
- Use SwiftLint for code formatting
- Maintain 80%+ test coverage

### Branching Strategy
1. `main` - Stable production-ready code
2. `develop` - Current development branch
3. `feature/*` - Feature development branches
4. `hotfix/*` - Critical bug fixes

### Pull Request Process
1. Create a feature branch from `develop`
2. Implement changes with tests
3. Open PR with detailed description
4. Address code review feedback
5. Merge after CI passes and approval

## Key Milestones
### Completed
- [x] Project setup and architecture
- [x] Basic screenshot capture
- [x] Stockfish integration

### Current
- [ ] Advanced board recognition
- [ ] Visual overlay system
- [ ] Performance optimization

### Upcoming
- [ ] User settings implementation
- [ ] Analytics integration
- [ ] TestFlight distribution

## Documentation
- [Technical Specifications](docs/architecture/overview.md)
- [API Reference](docs/api/)
- [Development Guide](docs/development/getting-started.md)

## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Contact
For project inquiries, please contact:
- Project Lead: [Your Name]
- Email: [your.email@example.com]
- Gitea: [Your Gitea Profile]
