The project's README from github.com/AhmadHassan-BTed/GardenPulse. As one markdown file: README.md.
GardenPulse is a smart urban garden companion that eliminates the guesswork out of growing. Whether you're tending windowsill herbs, managing a balcony container garden, running a hydroponic setup, or maintaining 50+ houseplants - GardenPulse adapts every recommendation to your specific growing method, your local climate, and your live weather conditions.
Tagline: Grow Smarter, Anywhere.
Unlike generic plant apps, GardenPulse is method-agnostic: the entire UI, care schedule, and AI guidance adapts based on how you grow - not a one-size-fits-all template. Core tools are 100% free, forever, with a privacy-first, offline-capable architecture.
| Feature | Description |
|---|---|
| Method-Agnostic Plant ID | Snap a leaf → AI detects plant species, growing method, and likely issues (deficiency, pest, overwatering) |
| Localized AI Agronomist | On-device ML evaluates leaf patterns against user-logged metrics and regional climate data |
| Smart Weather Integration | Auto-adjusts care schedules based on live forecast (e.g., "Rain tomorrow → skip watering today") |
| Gemini Vision Diagnostics | All leaf-scan diagnostics run on-device - photos are never uploaded to the cloud |
| Feature | Description |
|---|---|
| GPS / Network Location | Enables hyper-local plant recommendations and regional pest/disease alerts |
| Auto Planting Zone Detection | USDA Hardiness Zone auto-detect filters the plant database to region-survivable species |
| Live Weather API | OpenWeatherMap One Call API 3.0 for real-time temp, humidity, precipitation, and UV index |
| Local Community Maps | Opt-in anonymized data shows what's thriving in your ZIP code right now |
| Ad Type | Trigger | Target eCPM |
|---|---|---|
| High-Intent Interstitial | Triggered at dosing calculation / export moments | $25–45 (Tier 1) |
| Contextual Native Ads | Styled as "Garden Tips" within the activity timeline | - |
| Rewarded Videos | Unlock PDF garden plans, compliance logs, advanced calculators | - |
| Supporter Badge | $2.99 one-time to remove interstitials only | - |
| Layer | Technology | Version |
|---|---|---|
| Mobile Framework | React Native + Expo | SDK 54.0.35 (RN 0.81.5) |
| Language | TypeScript | ~5.9.2 |
| UI Components | React Native Paper (Material Design) | ^5.15.3 |
| Glassmorphic UI | @callstack/liquid-glass + expo-blur | ^0.8.0 / ~15.0.8 |
| Icons | @expo/vector-icons | ^15.0.3 |
| Backend & Auth | Firebase Auth, Firestore, Storage | ^12.14.0 |
| AI Engine | Google AI Studio - Gemini Multimodal & Vision | ^0.24.1 |
| Location | expo-location + Google Maps Platform | ~19.0.8 |
| Maps | react-native-maps | 1.20.1 |
| Weather | OpenWeatherMap One Call API 3.0 | - |
| Camera | expo-camera | ~17.0.10 |
| Media | expo-image-picker, expo-media-library | - |
| Audio | expo-av | ~16.0.8 |
| Offline Storage | @react-native-async-storage/async-storage | 2.2.0 |
| State Management | Zustand | ^5.0.14 |
| Monetization | Google AdMob (react-native-google-mobile-ads) | ^16.3.3 |
| Vector Graphics | react-native-svg | 15.12.1 |
GardenPulse/
├── .agents/ # Local AI agent skills (excluded from Git)
│ └── skills/ # Skillfish-managed agent skill packs
├── .claude/ # Claude AI assistant context files
├── .docs/ # Product blueprint & tech stack documents
│ └── Gardenpulse .md # Full product specification
├── .expo/ # Expo local build cache (auto-generated)
├── assets/ # App icons, splash screens, banner assets
│ ├── banner-app-logo.png # App banner (used in README)
│ ├── icon.png # App icon (iOS)
│ ├── favicon.png # Web favicon
│ ├── android-icon-foreground.png
│ ├── android-icon-background.png
│ └── android-icon-monochrome.png
├── App.tsx # Root application component
├── index.ts # Expo entry point
├── app.json # Expo config - permissions, plugins, AdMob IDs
├── metro.config.js # Custom Metro bundler configuration
├── tsconfig.json # TypeScript compiler settings
├── package.json # Dependencies & npm scripts
├── INSTALL.md # Detailed setup guide for all APIs & credentials
├── Architecture.drawio # System architecture diagram
├── GARDENPULSE.md # Product blueprint (markdown mirror)
├── AGENTS.md # Agent / AI assistant guidelines
├── CLAUDE.md # Claude assistant context
└── LICENSE # Proprietary License
Ensure the following are installed on your machine:
| Tool | Minimum Version | Notes |
|---|---|---|
| Node.js | v18.x or v20.x |
LTS recommended |
| npm | v9.x or later |
Bundled with Node |
| Git | Any recent version | For cloning |
| Expo Go | Latest | iOS / Android device app for development |
| Android Studio | Optional | For Android Emulator |
| Xcode | Optional (macOS only) | For iOS Simulator |
git clone <repository-url>
cd GardenPulse
npm install
Create a .env file in the project root and populate it with your API keys:
# ── Google AI Studio (Gemini) ───────────────────────────────
EXPO_PUBLIC_GEMINI_API_KEY=your_gemini_api_key_here
# ── OpenWeatherMap ──────────────────────────────────────────
EXPO_PUBLIC_OPENWEATHER_API_KEY=your_openweather_api_key_here
# ── Firebase ────────────────────────────────────────────────
EXPO_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key_here
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
EXPO_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
EXPO_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id
Note: Google Maps API keys are embedded in
app.jsonunder the Android/iOS config sections. See INSTALL.md for details.
npm run start # Start Expo dev server (scan QR with Expo Go)
npm run android # Launch on Android emulator / connected device
npm run ios # Launch on iOS simulator (macOS only)
npm run web # Launch web version in browser
Scan the QR code in the terminal with the Expo Go app on your physical device to preview the app instantly.
| Service | Where to Get It | Docs |
|---|---|---|
| Gemini AI | Google AI Studio | Free tier available |
| OpenWeatherMap | openweathermap.org | One Call API 3.0 |
| Firebase | Firebase Console | Auth + Firestore + Storage |
| Google Maps | Google Cloud Console | Maps SDK for Android/iOS |
| AdMob | AdMob Console | Test IDs pre-configured |
The project ships with Google's standard AdMob test IDs so you can build and test ads immediately without a real AdMob account.
# 1. Install EAS CLI
npm install -g eas-cli
# 2. Log in to Expo
eas login
# 3. Configure EAS project (first time only)
eas build:configure
# 4. Build production Android App Bundle (.aab)
eas build --platform android --profile production
The .aab output is ready for direct upload to the Google Play Console.
For full deployment instructions including iOS App Store builds, keystore management, and AdMob production ID configuration, see INSTALL.md.
@callstack/liquid-glass (Apple Liquid Glass) on iOS and expo-blur on AndroidGardenPulse is designed with a privacy-first architecture:
| Phase | Feature |
|---|---|
| MVP | Core logging, AI diagnostics, weather scheduling, AdMob |
| Phase 2 | GardenPulse for Schools - STEM curriculum modules |
| Phase 3 | Hardware integrations - Bluetooth sensors, smart irrigation |
| Phase 4 | B2B white-label - Nurseries & seed brands |
| Phase 5 | Certification pathways - Urban ag nonprofit partnerships |
| Document | Description |
|---|---|
| INSTALL.md | Full setup guide - API keys, Firebase config, AdMob IDs, Play Store deployment |
| GARDENPULSE.md | Complete product blueprint - features, UX flows, monetization model |
| Architecture.drawio | System architecture diagram (open with draw.io) |
This project is proprietary and confidential. All rights are reserved. See the LICENSE file for details.
Built with by the GardenPulse team · Grow Smarter, Anywhere.