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