AI Pose Coach & Smart Camera - Intelligent posing assistant that analyzes your personality, location, outfit, and context to suggest the perfect poses. Features automatic camera optimization, retro digital filters, and premium features with integrated payments.
- AI Pose Coach: Intelligent pose suggestions based on personality, location, outfit, and context
- Smart Camera Optimization: Automatic camera settings for perfect shots every time
- Retro Digital Filters: Classic digital camera filters and effects
- Real-time Pose Analysis: WebSocket-powered live feedback and pose guidance
- Photo Gallery: Organize and manage your posed photos
- Authentication: Google Sign-In and Apple Sign-In for secure access
- Women-Only Community: Face verification ensures exclusive access for women
- Premium Experience: Superwall-powered subscriptions for advanced features
Screenshots coming soon
- macOS 13.0+
- Xcode 15.0+
- iOS 15.0+ device or simulator
- Swift 5.9+
-
Clone the repository
git clone https://github.com/Rushant-123/slay-ai.git cd slay-ai -
Install dependencies
# Swift Package Manager handles all dependencies automatically open SnatchShot.xcodeproj -
Configure Environment
# Copy the example environment file cp .env.example .env # Edit .env with your actual configuration values nano .env
-
Configure Build Settings
# Copy and configure your secrets cp SnatchShot/Config.xcconfig.example SnatchShot/Config.xcconfig # Edit Config.xcconfig with your actual API keys and URLs nano SnatchShot/Config.xcconfig
-
Build and Run
# In Xcode: Product β Run (βR) # Or use command line: xcodebuild -project SnatchShot.xcodeproj -scheme SnatchShot -sdk iphonesimulator
Create a .env file in the project root:
# Google Sign In Configuration
GOOGLE_CLIENT_ID=your_google_client_id_here.apps.googleusercontent.com
# Apple Sign In Configuration
APPLE_TEAM_ID=your_apple_team_id
APPLE_SERVICES_ID=com.yourdomain.yourapp.signin
APPLE_KEY_ID=your_apple_key_id
APPLE_PRIVATE_KEY=your_apple_private_key
# Database API Configuration
DATABASE_API_BASE_URL=http://your_api_domain.com/api
DATABASE_API_TIMEOUT=30
# WebSocket Configuration
WEBSOCKET_BASE_URL=ws://your_websocket_domain.com:4001
# Analytics Configuration
MIXPANEL_TOKEN=your_mixpanel_token_here
# AppsFlyer Configuration
APPSFLYER_DEV_KEY=your_appsflyer_dev_key_here
APPLE_APP_ID=your_apple_app_id_hereThe SnatchShot/Config.xcconfig file contains build-time configuration:
// Google Sign In Configuration
GOOGLE_CLIENT_ID = your_google_client_id_here.apps.googleusercontent.com
// Database API Configuration
DATABASE_API_BASE_URL = http://your_api_domain.com/api
DATABASE_API_TIMEOUT = 30
// WebSocket Configuration
WEBSOCKET_BASE_URL = ws://your_websocket_domain.com:4001
// Apple Sign In Configuration
APPLE_TEAM_ID = your_team_id
APPLE_SERVICES_ID = com.yourdomain.yourapp.signin
APPLE_KEY_ID = your_key_id
APPLE_PRIVATE_KEY = -----BEGIN PRIVATE KEY-----...
// Analytics Configuration
MIXPANEL_TOKEN = your_mixpanel_token
// AppsFlyer Configuration
APPSFLYER_DEV_KEY = your_appsflyer_key
APPLE_APP_ID = your_apple_app_id
- Camera Service: Handles camera capture and processing
- WebSocket Service: Real-time communication with AI backend
- Database Service: API communication and data management
- Configuration: Centralized configuration management
- Analytics: User behavior tracking and insights
- SwiftUI: Modern, declarative UI framework
- Combine: Reactive programming for state management
- AVFoundation: Camera and media processing
- Metal: GPU-accelerated image processing
- Superwall: Subscription and paywall management
- WebSocket: Real-time bidirectional communication
- Face Verification: AI-powered gender verification for community access
SnatchShot/
βββ Camera/ # Camera and image processing
β βββ CameraView.swift
β βββ CameraService.swift
β βββ PoseSuggestionsView.swift
βββ DatabaseService.swift # API communication
βββ WebSocketService.swift # Real-time messaging
βββ Configuration.swift # App configuration
βββ GalleryView.swift # Photo gallery
βββ SubscriptionManager.swift # Premium features
βββ Config.xcconfig # Build configuration
- Follow Swift API Design Guidelines
- Use SwiftLint for code quality
- Document complex logic with comments
- Prefer SwiftUI over UIKit where possible
# Run unit tests
xcodebuild test -project SnatchShot.xcodeproj -scheme SnatchShot
# Run UI tests
xcodebuild test -project SnatchShot.xcodeproj -scheme SnatchShotUITests- Never commit secrets: API keys, tokens, and private keys are excluded from version control
- Environment variables: Use
.envfiles for local development - Build configuration: Sensitive data is managed through
Config.xcconfig - HTTPS only: All network requests use secure connections
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and test thoroughly
- Commit your changes:
git commit -m "Add your feature" - Push to your fork:
git push origin feature/your-feature-name - Create a Pull Request
- Code Review: All PRs require review before merging
- Tests: Add tests for new features
- Documentation: Update README and code comments
- Security: Never expose sensitive information
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Check the
*_README.mdfiles in the project
- AI/ML Team: For the revolutionary pose coaching and camera intelligence algorithms
- Design Team: For the intuitive camera interface and pose suggestion UX
- Open Source Community: For the amazing libraries and tools powering the smart camera features
Made with β€οΈ for photographers and pose enthusiasts worldwide