65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
# PlantTime
|
|
|
|
A plant identification and care management iOS app built with SwiftUI.
|
|
|
|
## Features
|
|
|
|
- **Plant Identification** - Identify plants using on-device ML (Core ML) with PlantNet API fallback
|
|
- **Plant Collection** - Save and organize your identified plants
|
|
- **Room Organization** - Group plants by room (Kitchen, Living Room, Bedroom, etc.)
|
|
- **Care Scheduling** - Track watering, fertilizing, repotting, pruning, and pest control
|
|
- **Today View** - Dashboard showing overdue and today's care tasks
|
|
- **Progress Photos** - Capture growth photos with time-lapse playback
|
|
- **Photo Reminders** - Scheduled reminders for progress photos (weekly, bi-weekly, monthly)
|
|
- **CloudKit Sync** - Sync plants and care data across devices via iCloud
|
|
- **Dark Mode** - Full dark mode support with semantic color tokens
|
|
|
|
## Screenshots
|
|
|
|
*Coming soon*
|
|
|
|
## Requirements
|
|
|
|
- iOS 17.0+
|
|
- Xcode 15.0+
|
|
- Swift 5.9+
|
|
|
|
## Architecture
|
|
|
|
Clean Architecture + MVVM with three layers:
|
|
|
|
```
|
|
Presentation (SwiftUI Views + ViewModels)
|
|
↓
|
|
Domain (Use Cases + Entities + Repository Protocols)
|
|
↓
|
|
Data (Repository Implementations + Data Sources)
|
|
```
|
|
|
|
Key patterns:
|
|
- Dependency Injection via `DIContainer`
|
|
- Actor-based concurrency for thread safety
|
|
- Core Data + CloudKit for persistence and sync
|
|
|
|
## Setup
|
|
|
|
1. Clone the repository
|
|
2. Open `PlantGuide.xcodeproj` in Xcode
|
|
3. Configure your API keys in `App/Configuration/APIKeys.swift`:
|
|
- PlantNet API key (get one at [my.plantnet.org](https://my.plantnet.org))
|
|
- Trefle API key (get one at [trefle.io](https://trefle.io))
|
|
4. Set up CloudKit:
|
|
- Enable iCloud capability in Signing & Capabilities
|
|
- Create CloudKit container: `iCloud.com.yourteam.PlantGuide`
|
|
5. Build and run
|
|
|
|
## ML Model
|
|
|
|
Uses PlantNet-300K ResNet50 for on-device plant classification:
|
|
- Input: 224x224 RGB image
|
|
- Output: 1,081 plant species probabilities
|
|
|
|
## License
|
|
|
|
MIT
|