Initial project structure
This commit is contained in:
commit
fa237fc89c
20 changed files with 786 additions and 0 deletions
42
.gitignore
vendored
Normal file
42
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Xcode
|
||||||
|
xcuserdata/
|
||||||
|
*.xcscmblueprint
|
||||||
|
*.xccheckout
|
||||||
|
build/
|
||||||
|
DerivedData/
|
||||||
|
*.moved-aside
|
||||||
|
*.pbxuser
|
||||||
|
*.mode1v3
|
||||||
|
*.mode2v3
|
||||||
|
*.perspectivev3
|
||||||
|
|
||||||
|
# Swift Package Manager
|
||||||
|
.build/
|
||||||
|
Packages/
|
||||||
|
Package.pins
|
||||||
|
Package.resolved
|
||||||
|
|
||||||
|
# ML Models
|
||||||
|
*.mlmodel
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
*.xcresult
|
||||||
|
|
||||||
|
# Fastlane
|
||||||
|
fastlane/report.xml
|
||||||
|
fastlane/Preview.html
|
||||||
|
fastlane/screenshots
|
||||||
|
fastlane/test_output
|
||||||
239
Detailed-Implementation-Plan.txt
Normal file
239
Detailed-Implementation-Plan.txt
Normal file
|
|
@ -0,0 +1,239 @@
|
||||||
|
# Chess Teaching Assistant Detailed Implementation Plan
|
||||||
|
|
||||||
|
## Week 1: Project Setup
|
||||||
|
1. Create Xcode project
|
||||||
|
- Set up SwiftUI project structure
|
||||||
|
- Configure project settings for MacOS Silicon
|
||||||
|
- Add basic app lifecycle handlers
|
||||||
|
2. Set up development environment
|
||||||
|
- Install required dependencies (Metal, Vision)
|
||||||
|
- Configure build settings
|
||||||
|
- Set up version control
|
||||||
|
3. Establish project architecture
|
||||||
|
- Create core module structure
|
||||||
|
- Implement basic MVVM pattern
|
||||||
|
- Set up dependency injection
|
||||||
|
4. Implement permission handlers
|
||||||
|
- Add screen recording permission request
|
||||||
|
- Implement accessibility permissions
|
||||||
|
- Add privacy descriptions in Info.plist
|
||||||
|
|
||||||
|
## Week 2-3: Screenshot Module
|
||||||
|
1. Screen recording permissions
|
||||||
|
- Implement permission request flow
|
||||||
|
- Handle permission denied scenarios
|
||||||
|
- Add permission status monitoring
|
||||||
|
2. Screenshot capture service
|
||||||
|
- Implement ScreenCapture API integration
|
||||||
|
- Add screenshot quality settings
|
||||||
|
- Implement error handling
|
||||||
|
3. Keyboard shortcut system
|
||||||
|
- Add global keyboard event monitoring
|
||||||
|
- Implement custom shortcut configuration
|
||||||
|
- Handle shortcut conflicts
|
||||||
|
4. Firefox window detection
|
||||||
|
- Implement window detection logic
|
||||||
|
- Add browser window filtering
|
||||||
|
- Handle multiple window scenarios
|
||||||
|
5. Multi-monitor support
|
||||||
|
- Implement monitor detection
|
||||||
|
- Add monitor selection UI
|
||||||
|
- Test across different monitor setups
|
||||||
|
|
||||||
|
## Week 3-4: Board Recognition System
|
||||||
|
1. Vision framework integration
|
||||||
|
- Set up Vision pipeline
|
||||||
|
- Implement image analysis
|
||||||
|
- Add error handling
|
||||||
|
2. ML model for piece recognition
|
||||||
|
- Create training dataset
|
||||||
|
- Train initial model
|
||||||
|
- Implement model inference
|
||||||
|
3. Chess.com theme handling
|
||||||
|
- Collect theme samples
|
||||||
|
- Add theme detection
|
||||||
|
- Implement theme-specific recognition
|
||||||
|
4. FEN conversion logic
|
||||||
|
- Implement FEN generation
|
||||||
|
- Add position validation
|
||||||
|
- Handle edge cases
|
||||||
|
5. Position validation system
|
||||||
|
- Add board state validation
|
||||||
|
- Implement error correction
|
||||||
|
- Add validation feedback
|
||||||
|
|
||||||
|
## Week 5-6: Stockfish Integration
|
||||||
|
1. Stockfish ARM64 setup
|
||||||
|
- Integrate Stockfish binary
|
||||||
|
- Configure engine settings
|
||||||
|
- Test basic functionality
|
||||||
|
2. Async engine wrapper
|
||||||
|
- Implement async interface
|
||||||
|
- Add move analysis queue
|
||||||
|
- Handle engine timeouts
|
||||||
|
3. Position analysis pipeline
|
||||||
|
- Implement analysis request system
|
||||||
|
- Add result processing
|
||||||
|
- Handle analysis errors
|
||||||
|
4. Move suggestion system
|
||||||
|
- Implement best move detection
|
||||||
|
- Add alternative move suggestions
|
||||||
|
- Handle engine evaluations
|
||||||
|
5. Evaluation cache
|
||||||
|
- Implement position caching
|
||||||
|
- Add cache invalidation
|
||||||
|
- Optimize cache performance
|
||||||
|
|
||||||
|
## Week 7-8: Visual Overlay Foundation
|
||||||
|
1. Metal rendering pipeline
|
||||||
|
- Set up Metal framework
|
||||||
|
- Implement basic rendering
|
||||||
|
- Add shader support
|
||||||
|
2. Transparent window system
|
||||||
|
- Create transparent NSWindow
|
||||||
|
- Implement window positioning
|
||||||
|
- Add window management
|
||||||
|
3. Basic shape rendering
|
||||||
|
- Implement shape drawing
|
||||||
|
- Add color customization
|
||||||
|
- Handle shape transformations
|
||||||
|
4. Coordinate transformation
|
||||||
|
- Implement screen to board mapping
|
||||||
|
- Add coordinate system conversion
|
||||||
|
- Handle window resizing
|
||||||
|
5. Overlay performance testing
|
||||||
|
- Implement performance metrics
|
||||||
|
- Add optimization hooks
|
||||||
|
- Test on different hardware
|
||||||
|
|
||||||
|
## Week 9-10: Move Visualization
|
||||||
|
1. Arrow rendering system
|
||||||
|
- Implement arrow drawing
|
||||||
|
- Add arrow customization
|
||||||
|
- Handle arrow animations
|
||||||
|
2. Square highlighting
|
||||||
|
- Implement square coloring
|
||||||
|
- Add highlight types
|
||||||
|
- Handle multiple highlights
|
||||||
|
3. Attack pattern visualization
|
||||||
|
- Implement attack detection
|
||||||
|
- Add visual indicators
|
||||||
|
- Handle complex patterns
|
||||||
|
4. Defensive move indicators
|
||||||
|
- Implement defense detection
|
||||||
|
- Add visual feedback
|
||||||
|
- Handle multiple defenses
|
||||||
|
5. Threat visualization system
|
||||||
|
- Implement threat detection
|
||||||
|
- Add threat indicators
|
||||||
|
- Handle complex threats
|
||||||
|
|
||||||
|
## Week 11: Performance Optimization
|
||||||
|
1. Metal shaders
|
||||||
|
- Implement custom shaders
|
||||||
|
- Optimize rendering
|
||||||
|
- Add shader debugging
|
||||||
|
2. Rendering pipeline
|
||||||
|
- Optimize draw calls
|
||||||
|
- Implement batching
|
||||||
|
- Add performance monitoring
|
||||||
|
3. Caching mechanisms
|
||||||
|
- Implement position cache
|
||||||
|
- Add analysis cache
|
||||||
|
- Optimize cache usage
|
||||||
|
4. Analysis pipeline
|
||||||
|
- Optimize engine calls
|
||||||
|
- Add parallel processing
|
||||||
|
- Handle resource contention
|
||||||
|
5. System benchmarking
|
||||||
|
- Implement performance tests
|
||||||
|
- Add metrics collection
|
||||||
|
- Analyze optimization results
|
||||||
|
|
||||||
|
## Week 12: Testing & Refinement
|
||||||
|
1. Automated test suite
|
||||||
|
- Add unit tests
|
||||||
|
- Implement integration tests
|
||||||
|
- Add UI tests
|
||||||
|
2. Performance tests
|
||||||
|
- Implement benchmark tests
|
||||||
|
- Add stress tests
|
||||||
|
- Monitor resource usage
|
||||||
|
3. Security audit
|
||||||
|
- Review code security
|
||||||
|
- Implement security fixes
|
||||||
|
- Add security monitoring
|
||||||
|
4. Bug fixes
|
||||||
|
- Implement bug tracking
|
||||||
|
- Add crash reporting
|
||||||
|
- Fix reported issues
|
||||||
|
5. Optimizations
|
||||||
|
- Analyze performance
|
||||||
|
- Implement optimizations
|
||||||
|
- Verify improvements
|
||||||
|
|
||||||
|
## Week 13: Polish & Distribution
|
||||||
|
1. UI/UX refinement
|
||||||
|
- Implement design improvements
|
||||||
|
- Add animations
|
||||||
|
- Improve user feedback
|
||||||
|
2. User settings
|
||||||
|
- Implement settings UI
|
||||||
|
- Add customization options
|
||||||
|
- Handle settings persistence
|
||||||
|
3. Analytics
|
||||||
|
- Implement analytics system
|
||||||
|
- Add event tracking
|
||||||
|
- Handle privacy concerns
|
||||||
|
4. Documentation
|
||||||
|
- Create user documentation
|
||||||
|
- Add developer docs
|
||||||
|
- Implement in-app help
|
||||||
|
5. TestFlight preparation
|
||||||
|
- Set up TestFlight
|
||||||
|
- Prepare build artifacts
|
||||||
|
- Configure distribution
|
||||||
|
|
||||||
|
## Week 14: Launch Preparation
|
||||||
|
1. Final security review
|
||||||
|
- Conduct security audit
|
||||||
|
- Implement final fixes
|
||||||
|
- Verify security measures
|
||||||
|
2. Performance validation
|
||||||
|
- Conduct final benchmarks
|
||||||
|
- Verify optimizations
|
||||||
|
- Ensure smooth operation
|
||||||
|
3. Documentation completion
|
||||||
|
- Finalize user docs
|
||||||
|
- Complete developer docs
|
||||||
|
- Verify documentation
|
||||||
|
4. TestFlight distribution
|
||||||
|
- Prepare final build
|
||||||
|
- Distribute to testers
|
||||||
|
- Collect feedback
|
||||||
|
5. User feedback setup
|
||||||
|
- Implement feedback system
|
||||||
|
- Add bug reporting
|
||||||
|
- Set up support channels
|
||||||
|
|
||||||
|
Key Milestones:
|
||||||
|
✓ Week 1: Working project structure
|
||||||
|
✓ Week 4: Functional board recognition
|
||||||
|
✓ Week 6: Working Stockfish analysis
|
||||||
|
✓ Week 8: Basic visual overlay system
|
||||||
|
✓ Week 10: Complete visualization system
|
||||||
|
✓ Week 12: Optimized performance
|
||||||
|
✓ Week 14: Ready for distribution
|
||||||
|
|
||||||
|
Testing Checkpoints:
|
||||||
|
- After each module completion
|
||||||
|
- Weekly performance benchmarks
|
||||||
|
- Bi-weekly security reviews
|
||||||
|
- Regular UX testing sessions
|
||||||
|
|
||||||
|
Development Priorities:
|
||||||
|
1. Core functionality
|
||||||
|
2. Performance optimization
|
||||||
|
3. User experience
|
||||||
|
4. Security compliance
|
||||||
|
5. Polish and refinement
|
||||||
5
LICENSE
Normal file
5
LICENSE
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Chess Teaching Assistant
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge...
|
||||||
30
Objective.txt
Normal file
30
Objective.txt
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
Chess Teaching Assistant Application (MacOS Silicon Compatible)
|
||||||
|
|
||||||
|
Primary Goal:
|
||||||
|
Create a HUD (Heads-Up Display) overlay system for chess.com that assists in teaching chess to students.
|
||||||
|
|
||||||
|
Core Features:
|
||||||
|
1. Screenshot Capture
|
||||||
|
- Capture chess.com board state via keyboard shortcut/button
|
||||||
|
- Compatible with Firefox browser
|
||||||
|
- Optimized for MacOS Silicon architecture
|
||||||
|
|
||||||
|
2. Board Position Analysis
|
||||||
|
- Parse screenshot to detect piece positions
|
||||||
|
- Convert board state into FEN notation for Stockfish
|
||||||
|
- Interface with Stockfish engine (loaded in memory)
|
||||||
|
|
||||||
|
3. Visual Overlay System
|
||||||
|
- Display suggested moves as arrows over the live chess board
|
||||||
|
- Show attack patterns and defensive possibilities
|
||||||
|
- Real-time visual feedback for teaching purposes
|
||||||
|
|
||||||
|
Technical Requirements:
|
||||||
|
- MacOS Silicon (ARM64) compatibility
|
||||||
|
- Integration with chess.com via Firefox browser
|
||||||
|
- Stockfish integration for position analysis
|
||||||
|
- Transparent overlay system for move visualization
|
||||||
|
- Low-latency performance for real-time teaching
|
||||||
|
|
||||||
|
Use Case:
|
||||||
|
Instructor can activate the analysis during live games on chess.com, providing immediate visual feedback to students about tactical opportunities and strategic planning, enhancing the teaching experience through interactive visual guidance.
|
||||||
93
Outline-Plan.txt
Normal file
93
Outline-Plan.txt
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
# Chess Teaching Assistant Implementation Outline
|
||||||
|
|
||||||
|
1. Project Setup (Week 1)
|
||||||
|
- Create Xcode project with SwiftUI
|
||||||
|
- Set up development environment
|
||||||
|
- Configure Metal and Vision framework dependencies
|
||||||
|
- Establish basic project architecture
|
||||||
|
- Implement permission handlers
|
||||||
|
|
||||||
|
2. Screenshot Module (Week 2-3)
|
||||||
|
- Implement screen recording permissions flow
|
||||||
|
- Build screenshot capture service
|
||||||
|
- Add keyboard shortcut system
|
||||||
|
- Create Firefox window detection
|
||||||
|
- Test multi-monitor support
|
||||||
|
|
||||||
|
3. Board Recognition System (Week 3-4)
|
||||||
|
- Develop Vision framework integration
|
||||||
|
- Create ML model for piece recognition
|
||||||
|
- Train model with various chess.com themes
|
||||||
|
- Implement FEN conversion logic
|
||||||
|
- Build position validation system
|
||||||
|
|
||||||
|
4. Stockfish Integration (Week 5-6)
|
||||||
|
- Set up Stockfish ARM64 binary
|
||||||
|
- Create async engine wrapper
|
||||||
|
- Implement position analysis pipeline
|
||||||
|
- Add move suggestion system
|
||||||
|
- Build evaluation cache
|
||||||
|
|
||||||
|
5. Visual Overlay Foundation (Week 7-8)
|
||||||
|
- Create Metal rendering pipeline
|
||||||
|
- Build transparent window system
|
||||||
|
- Implement basic shape rendering
|
||||||
|
- Add coordinate transformation system
|
||||||
|
- Test overlay performance
|
||||||
|
|
||||||
|
6. Move Visualization (Week 9-10)
|
||||||
|
- Develop arrow rendering system
|
||||||
|
- Add square highlighting
|
||||||
|
- Implement attack pattern visualization
|
||||||
|
- Create defensive move indicators
|
||||||
|
- Build threat visualization system
|
||||||
|
|
||||||
|
7. Performance Optimization (Week 11)
|
||||||
|
- Implement Metal shaders
|
||||||
|
- Optimize rendering pipeline
|
||||||
|
- Add caching mechanisms
|
||||||
|
- Reduce latency in analysis pipeline
|
||||||
|
- Benchmark system performance
|
||||||
|
|
||||||
|
8. Testing & Refinement (Week 12)
|
||||||
|
- Create automated test suite
|
||||||
|
- Implement UI tests
|
||||||
|
- Add performance tests
|
||||||
|
- Security audit
|
||||||
|
- Bug fixes and optimizations
|
||||||
|
|
||||||
|
9. Polish & Distribution (Week 13)
|
||||||
|
- UI/UX refinement
|
||||||
|
- Add user settings
|
||||||
|
- Implement analytics
|
||||||
|
- Create documentation
|
||||||
|
- TestFlight preparation
|
||||||
|
|
||||||
|
10. Launch Preparation (Week 14)
|
||||||
|
- Final security review
|
||||||
|
- Performance validation
|
||||||
|
- Documentation completion
|
||||||
|
- TestFlight distribution
|
||||||
|
- User feedback collection setup
|
||||||
|
|
||||||
|
Key Milestones:
|
||||||
|
✓ Week 1: Working project structure
|
||||||
|
✓ Week 4: Functional board recognition
|
||||||
|
✓ Week 6: Working Stockfish analysis
|
||||||
|
✓ Week 8: Basic visual overlay system
|
||||||
|
✓ Week 10: Complete visualization system
|
||||||
|
✓ Week 12: Optimized performance
|
||||||
|
✓ Week 14: Ready for distribution
|
||||||
|
|
||||||
|
Testing Checkpoints:
|
||||||
|
- After each module completion
|
||||||
|
- Weekly performance benchmarks
|
||||||
|
- Bi-weekly security reviews
|
||||||
|
- Regular UX testing sessions
|
||||||
|
|
||||||
|
Development Priorities:
|
||||||
|
1. Core functionality
|
||||||
|
2. Performance optimization
|
||||||
|
3. User experience
|
||||||
|
4. Security compliance
|
||||||
|
5. Polish and refinement
|
||||||
94
Plan.txt
Normal file
94
Plan.txt
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
# Chess Teaching Assistant Application Technical Plan
|
||||||
|
|
||||||
|
## Architecture:
|
||||||
|
- Native MacOS application using SwiftUI for the UI
|
||||||
|
- Core components:
|
||||||
|
* Screenshot Capture Module
|
||||||
|
* Board Position Analysis Engine
|
||||||
|
* Visual Overlay System
|
||||||
|
* Stockfish Integration
|
||||||
|
* Machine Learning Pipeline
|
||||||
|
|
||||||
|
## Implementation Details:
|
||||||
|
### Screenshot Capture:
|
||||||
|
- Use VisionKit and native Screen Capture API
|
||||||
|
- Implement keyboard shortcut using Swift Concurrency
|
||||||
|
- Screen Recording permission handling
|
||||||
|
- Multi-monitor support with DPI awareness
|
||||||
|
|
||||||
|
### Board Position Analysis:
|
||||||
|
- Apple Vision framework + Create ML for computer vision
|
||||||
|
- CoreML 5+ models for piece recognition
|
||||||
|
- Apple Neural Engine optimization
|
||||||
|
- Convert detected positions to FEN notation
|
||||||
|
- Handle various chess.com board themes and piece sets
|
||||||
|
- Real-time position validation
|
||||||
|
|
||||||
|
### Stockfish Integration:
|
||||||
|
- Use Stockfish ARM64 binary for MacOS Silicon
|
||||||
|
- Implement in-memory engine with async/await pattern
|
||||||
|
- Configure appropriate depth and time limits
|
||||||
|
- Multiple analysis lines support
|
||||||
|
- Position evaluation caching
|
||||||
|
|
||||||
|
### Visual Overlay System:
|
||||||
|
- Metal-accelerated rendering for optimal performance
|
||||||
|
- NSWindow with transparent background
|
||||||
|
- Hardware-accelerated move visualization
|
||||||
|
- Support multiple visualization types:
|
||||||
|
* Suggested moves (arrows)
|
||||||
|
* Attack patterns (highlighted squares)
|
||||||
|
* Defensive possibilities (colored areas)
|
||||||
|
* Threat visualization
|
||||||
|
* Piece mobility indicators
|
||||||
|
- Accessibility features integration
|
||||||
|
|
||||||
|
## Modern Architecture:
|
||||||
|
- Clean Architecture with domain-driven design
|
||||||
|
- Dependency injection for modularity
|
||||||
|
- Swift Concurrency for async operations
|
||||||
|
- Observation framework for state management
|
||||||
|
- App Sandbox compliance
|
||||||
|
- Privacy manifests implementation
|
||||||
|
|
||||||
|
## Development Plan:
|
||||||
|
Phase 1: Core Infrastructure
|
||||||
|
- Set up project with modern architecture
|
||||||
|
- Implement screenshot capture with permissions
|
||||||
|
- Basic board detection using Vision framework
|
||||||
|
|
||||||
|
Phase 2: Analysis Engine
|
||||||
|
- Stockfish integration with async/await
|
||||||
|
- Position analysis pipeline
|
||||||
|
- ML model training and integration
|
||||||
|
|
||||||
|
Phase 3: Visual System
|
||||||
|
- Metal-based overlay system
|
||||||
|
- Move visualization components
|
||||||
|
- Real-time rendering optimization
|
||||||
|
|
||||||
|
Phase 4: Performance & Security
|
||||||
|
- Performance benchmarking
|
||||||
|
- Security audit and sandbox compliance
|
||||||
|
- Privacy features implementation
|
||||||
|
|
||||||
|
Phase 5: Polish & Distribution
|
||||||
|
- TestFlight integration
|
||||||
|
- UI/UX refinement
|
||||||
|
- Documentation and deployment
|
||||||
|
|
||||||
|
## Technical Stack:
|
||||||
|
- Swift & SwiftUI for application framework
|
||||||
|
- Vision framework & Create ML for computer vision
|
||||||
|
- Metal for GPU-accelerated graphics
|
||||||
|
- CoreML for machine learning
|
||||||
|
- Stockfish for chess analysis
|
||||||
|
- Swift Concurrency for async operations
|
||||||
|
- XCTest for testing infrastructure
|
||||||
|
|
||||||
|
## Monitoring & Maintenance:
|
||||||
|
- Analytics integration for performance monitoring
|
||||||
|
- Crash reporting system
|
||||||
|
- Automated testing pipeline
|
||||||
|
- Regular security audits
|
||||||
|
- User feedback collection system
|
||||||
18
README.md
Normal file
18
README.md
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Chess Teaching Assistant
|
||||||
|
|
||||||
|
An intelligent chess teaching assistant for macOS that provides real-time analysis and visualization.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Real-time board position analysis
|
||||||
|
- Visual move suggestions
|
||||||
|
- Attack pattern visualization
|
||||||
|
- Defensive planning indicators
|
||||||
|
|
||||||
|
## Development
|
||||||
|
See [Development Guide](docs/development/getting-started.md) for setup instructions.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
See [Architecture Overview](docs/architecture/overview.md) for system design details.
|
||||||
|
|
||||||
|
## License
|
||||||
|
[MIT License](LICENSE)
|
||||||
24
cline_docs/activeContext.md
Normal file
24
cline_docs/activeContext.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Active Context
|
||||||
|
|
||||||
|
## What we're working on now
|
||||||
|
Implementation of Chess Teaching Assistant Application according to Detailed-Implementation-Plan.txt
|
||||||
|
|
||||||
|
## Recent changes
|
||||||
|
- Created detailed implementation plan
|
||||||
|
- Verified compatibility with updated outline
|
||||||
|
- Established modern tech stack (SwiftUI, Metal, Vision)
|
||||||
|
|
||||||
|
## Next steps
|
||||||
|
1. Begin Week 1: Project Setup
|
||||||
|
- Create Xcode project
|
||||||
|
- Set up development environment
|
||||||
|
- Establish project architecture
|
||||||
|
- Implement permission handlers
|
||||||
|
2. Prepare development environment
|
||||||
|
- Install required dependencies
|
||||||
|
- Configure build settings
|
||||||
|
- Set up version control
|
||||||
|
3. Document initial setup process
|
||||||
|
- Create setup documentation
|
||||||
|
- Verify environment configuration
|
||||||
|
- Test basic project structure
|
||||||
15
cline_docs/productContext.md
Normal file
15
cline_docs/productContext.md
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Product Context
|
||||||
|
|
||||||
|
## Why this project exists
|
||||||
|
To create a teaching assistant tool for chess instructors that provides real-time visual feedback during live games on chess.com.
|
||||||
|
|
||||||
|
## What problems it solves
|
||||||
|
1. Difficulty in explaining chess concepts during live games
|
||||||
|
2. Lack of immediate visual feedback for teaching purposes
|
||||||
|
3. Need for integrated analysis during live gameplay
|
||||||
|
|
||||||
|
## How it should work
|
||||||
|
1. Instructor plays/teaches on chess.com using Firefox
|
||||||
|
2. Application captures board state via screenshot
|
||||||
|
3. System analyzes position and suggests moves
|
||||||
|
4. Visual overlay shows analysis on top of live game
|
||||||
16
cline_docs/systemPatterns.md
Normal file
16
cline_docs/systemPatterns.md
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
# System Patterns
|
||||||
|
|
||||||
|
## Architecture Overview
|
||||||
|
1. Screenshot Capture Module
|
||||||
|
2. Board Position Analysis Engine
|
||||||
|
3. Visual Overlay System
|
||||||
|
4. Stockfish Integration
|
||||||
|
|
||||||
|
## Key Technical Decisions
|
||||||
|
1. MacOS Silicon (ARM64) native implementation
|
||||||
|
2. Firefox browser integration
|
||||||
|
3. Low-latency overlay system
|
||||||
|
4. In-memory Stockfish engine
|
||||||
|
|
||||||
|
## Data Flow
|
||||||
|
1. Screenshot → Board Position Detection → FEN Conversion → Stockfish Analysis → Visual Overlay
|
||||||
20
cline_docs/techContext.md
Normal file
20
cline_docs/techContext.md
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Tech Context
|
||||||
|
|
||||||
|
## Technologies Used
|
||||||
|
1. MacOS Silicon (ARM64) native development
|
||||||
|
2. Firefox browser integration
|
||||||
|
3. Stockfish chess engine
|
||||||
|
4. Computer vision for board detection
|
||||||
|
5. Transparent overlay system
|
||||||
|
|
||||||
|
## Development Setup
|
||||||
|
1. MacOS development environment
|
||||||
|
2. Firefox extension capabilities
|
||||||
|
3. Stockfish integration
|
||||||
|
4. Low-latency overlay framework
|
||||||
|
|
||||||
|
## Technical Constraints
|
||||||
|
1. Must work with chess.com in Firefox
|
||||||
|
2. Real-time performance requirements
|
||||||
|
3. MacOS Silicon compatibility
|
||||||
|
4. Accurate board position detection
|
||||||
10
config/default.json
Normal file
10
config/default.json
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"analysis": {
|
||||||
|
"depth": 20,
|
||||||
|
"threads": 4
|
||||||
|
},
|
||||||
|
"visualization": {
|
||||||
|
"arrowColor": "#FF0000",
|
||||||
|
"highlightColor": "#00FF00"
|
||||||
|
}
|
||||||
|
}
|
||||||
7
docs/architecture/overview.md
Normal file
7
docs/architecture/overview.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Architecture Overview
|
||||||
|
|
||||||
|
## System Components
|
||||||
|
- Screenshot Capture Module
|
||||||
|
- Board Position Analysis Engine
|
||||||
|
- Visual Overlay System
|
||||||
|
- Stockfish Integration
|
||||||
11
docs/development/getting-started.md
Normal file
11
docs/development/getting-started.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Getting Started
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
- Xcode 15.0+
|
||||||
|
- macOS 14.0+
|
||||||
|
- Swift 6.0+
|
||||||
|
|
||||||
|
## Setup Instructions
|
||||||
|
1. Clone the repository
|
||||||
|
2. Install dependencies
|
||||||
|
3. Build and run
|
||||||
162
setup_project.py
Normal file
162
setup_project.py
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
def create_directory_structure():
|
||||||
|
# Main project directories
|
||||||
|
directories = [
|
||||||
|
'src',
|
||||||
|
'src/core',
|
||||||
|
'src/features',
|
||||||
|
'src/utils',
|
||||||
|
'src/services',
|
||||||
|
'tests',
|
||||||
|
'tests/unit',
|
||||||
|
'tests/integration',
|
||||||
|
'tests/performance',
|
||||||
|
'docs',
|
||||||
|
'docs/api',
|
||||||
|
'docs/architecture',
|
||||||
|
'docs/development',
|
||||||
|
'assets',
|
||||||
|
'assets/ml-models',
|
||||||
|
'assets/shaders',
|
||||||
|
'scripts',
|
||||||
|
'config'
|
||||||
|
]
|
||||||
|
|
||||||
|
# Create directories
|
||||||
|
for directory in directories:
|
||||||
|
os.makedirs(directory, exist_ok=True)
|
||||||
|
|
||||||
|
def create_base_files():
|
||||||
|
# Git-related files
|
||||||
|
files = {
|
||||||
|
'.gitignore': '''
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Xcode
|
||||||
|
xcuserdata/
|
||||||
|
*.xcscmblueprint
|
||||||
|
*.xccheckout
|
||||||
|
build/
|
||||||
|
DerivedData/
|
||||||
|
*.moved-aside
|
||||||
|
*.pbxuser
|
||||||
|
*.mode1v3
|
||||||
|
*.mode2v3
|
||||||
|
*.perspectivev3
|
||||||
|
|
||||||
|
# Swift Package Manager
|
||||||
|
.build/
|
||||||
|
Packages/
|
||||||
|
Package.pins
|
||||||
|
Package.resolved
|
||||||
|
|
||||||
|
# ML Models
|
||||||
|
*.mlmodel
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
*.xcresult
|
||||||
|
|
||||||
|
# Fastlane
|
||||||
|
fastlane/report.xml
|
||||||
|
fastlane/Preview.html
|
||||||
|
fastlane/screenshots
|
||||||
|
fastlane/test_output
|
||||||
|
''',
|
||||||
|
'README.md': '''
|
||||||
|
# Chess Teaching Assistant
|
||||||
|
|
||||||
|
An intelligent chess teaching assistant for macOS that provides real-time analysis and visualization.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Real-time board position analysis
|
||||||
|
- Visual move suggestions
|
||||||
|
- Attack pattern visualization
|
||||||
|
- Defensive planning indicators
|
||||||
|
|
||||||
|
## Development
|
||||||
|
See [Development Guide](docs/development/getting-started.md) for setup instructions.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
See [Architecture Overview](docs/architecture/overview.md) for system design details.
|
||||||
|
|
||||||
|
## License
|
||||||
|
[MIT License](LICENSE)
|
||||||
|
''',
|
||||||
|
'LICENSE': '''MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Chess Teaching Assistant
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge...''',
|
||||||
|
'docs/development/getting-started.md': '''# Getting Started
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
- Xcode 15.0+
|
||||||
|
- macOS 14.0+
|
||||||
|
- Swift 6.0+
|
||||||
|
|
||||||
|
## Setup Instructions
|
||||||
|
1. Clone the repository
|
||||||
|
2. Install dependencies
|
||||||
|
3. Build and run
|
||||||
|
''',
|
||||||
|
'docs/architecture/overview.md': '''# Architecture Overview
|
||||||
|
|
||||||
|
## System Components
|
||||||
|
- Screenshot Capture Module
|
||||||
|
- Board Position Analysis Engine
|
||||||
|
- Visual Overlay System
|
||||||
|
- Stockfish Integration
|
||||||
|
''',
|
||||||
|
'src/core/__init__.py': '',
|
||||||
|
'src/features/__init__.py': '',
|
||||||
|
'src/utils/__init__.py': '',
|
||||||
|
'src/services/__init__.py': '',
|
||||||
|
'tests/__init__.py': '',
|
||||||
|
'config/default.json': '''{
|
||||||
|
"analysis": {
|
||||||
|
"depth": 20,
|
||||||
|
"threads": 4
|
||||||
|
},
|
||||||
|
"visualization": {
|
||||||
|
"arrowColor": "#FF0000",
|
||||||
|
"highlightColor": "#00FF00"
|
||||||
|
}
|
||||||
|
}'''
|
||||||
|
}
|
||||||
|
|
||||||
|
for file_path, content in files.items():
|
||||||
|
with open(file_path, 'w') as f:
|
||||||
|
f.write(content.strip())
|
||||||
|
|
||||||
|
def initialize_git():
|
||||||
|
commands = [
|
||||||
|
['git', 'init'],
|
||||||
|
['git', 'add', '.'],
|
||||||
|
['git', 'commit', '-m', 'Initial project structure'],
|
||||||
|
['git', 'branch', '-M', 'main'],
|
||||||
|
]
|
||||||
|
|
||||||
|
for command in commands:
|
||||||
|
subprocess.run(command)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
create_directory_structure()
|
||||||
|
create_base_files()
|
||||||
|
initialize_git()
|
||||||
|
print("Project structure created successfully!")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
0
src/core/__init__.py
Normal file
0
src/core/__init__.py
Normal file
0
src/features/__init__.py
Normal file
0
src/features/__init__.py
Normal file
0
src/services/__init__.py
Normal file
0
src/services/__init__.py
Normal file
0
src/utils/__init__.py
Normal file
0
src/utils/__init__.py
Normal file
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
Loading…
Add table
Reference in a new issue