A real-time multiplayer mobile game where players battle to identify plant species. Test your botanical knowledge in head-to-head matches, earn Trophies, and customize your profile with unique items!
Welcome screen with authentication options, main game arena with difficulty selection, and user profile with stats and achievements.
- Real-time multiplayer battles
- Plant identification challenges
- Skill-based matchmaking
- In-game currency (Trophies)
- Cosmetic customization shop
- Educational plant facts
- Social features and friend challenges
- Serverless Framework
- AWS Lambda
- API Gateway
- DynamoDB
- ElastiCache (Redis)
- S3
- Cognito
- iOS Native (Swift)
- SwiftUI
- Combine
- WebSocket
- Xcode 15.0+
- Node.js 18.0+
- AWS CLI
- Serverless Framework
- CocoaPods
-
Clone the repository
git clone https://github.com/your-org/botany-battle.git cd botany-battle
-
Backend Setup
cd backend npm install cp .env.example .env # Configure your .env file with necessary credentials serverless deploy --stage dev
-
iOS Setup
cd ios pod install open BotanyBattle.xcworkspace
botany-battle/
├── backend/
│ ├── src/
│ │ ├── functions/
│ │ │ ├── auth/
│ │ │ ├── game/
│ │ │ ├── plant/
│ │ │ └── shop/
│ │ ├── lib/
│ │ └── utils/
│ ├── tests/
│ └── serverless.yml
├── ios/
│ ├── Sources/
│ │ ├── App/
│ │ ├── Features/
│ │ ├── Core/
│ │ └── Resources/
│ ├── Tests/
│ └── Podfile
└── docs/
├── api/
├── architecture/
└── development/
# Unit Tests
cd backend
npm run test:unit
# Integration Tests
npm run test:integration
# Load Tests
npm run test:load
# Unit Tests
cd ios
xcodebuild test -scheme BotanyBattle -destination 'platform=iOS Simulator,name=iPhone 15'
# UI Tests
xcodebuild test -scheme BotanyBattleUITests -destination 'platform=iOS Simulator,name=iPhone 15'
- Cognito for authentication
- JWT for session management
- HTTPS for all communications
- API Gateway rate limiting
- Regular security audits
- GDPR compliance
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Write tests for your feature
- Implement your feature
- Ensure all tests pass
- Submit a pull request
- ESLint + Prettier
- TypeScript strict mode
- Jest for testing
- Serverless best practices
- SwiftLint
- SwiftFormat
- XCTest for testing
- SwiftUI best practices
- Serverless architecture
- Lambda functions for business logic
- DynamoDB for data storage
- ElastiCache for real-time state
- S3 for static assets
- API Gateway for HTTP/WebSocket
- MVVM architecture
- SwiftUI for UI
- Combine for reactive programming
- Swift Concurrency for async operations
- CloudWatch metrics
- X-Ray tracing
- Custom metrics
- Error tracking
- Crash reporting
- Performance monitoring
- User analytics
- Error tracking
- Code push triggers automated tests
- Successful tests trigger deployment
- Backend deploys to AWS
- iOS builds for TestFlight
- Automated rollback on failure
- iOS App Store Link: [Coming Soon]
- Minimum iOS Version: 15.0
- Device Support: iPhone only
This project is licensed under the MIT License - see the LICENSE file for details.
- iNaturalist API for plant data
- All contributors and supporters
- The plant identification community
See TODO.md for details.
- Phase 1: Project Setup
- Next Milestone: Backend Foundation Complete
- Initial project setup
- Development environment configuration
- Basic architecture implementation
- Authentication system
- Game logic implementation
- Plant service integration
- Economy system
- Unit test coverage > 80%
- Integration test coverage > 70%
- UI test coverage > 60%
- Zero critical security issues
- All accessibility requirements met
- API response time < 200ms
- Matchmaking time < 15 seconds
- App launch time < 2 seconds
- Memory usage < 100MB
- Battery impact < 5% per hour
-
Feature Development
# Create feature branch git checkout -b feature/new-feature # Run tests npm run test xcodebuild test # Submit PR git push origin feature/new-feature
-
Code Review
- All tests must pass
- Code style requirements met
- Documentation updated
- Performance requirements met
-
Deployment
# Deploy backend serverless deploy --stage dev # Deploy iOS fastlane beta
- Xcode 15.0+
- Node.js 18.0+
- AWS CLI
- Serverless Framework
- CocoaPods
- Fastlane
- Cursor.ai
- Claude Code
Built with ❤️ by Soren🐻 and Gunnar🐰