From 2c2e1e2c717fa521733c6823c52306bf0435cc09 Mon Sep 17 00:00:00 2001 From: Trey t Date: Fri, 23 Jan 2026 16:43:05 -0600 Subject: [PATCH] Add README Co-Authored-By: Claude Opus 4.5 --- README.md | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..47b6f7a --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# 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