Co-Pilot
Updated 24 days ago

n8ture-ai-app

Kkelvincushman
0.0k
kelvincushman/n8ture-ai-app
80
Agent Score

πŸ’‘ Summary

N8ture AI App uses AI to identify wildlife, plants, and fungi from photos, providing safety and edibility information.

🎯 Target Audience

Nature enthusiastsForagersOutdoor adventurersBotanistsStudents studying biology

πŸ€– AI Roast: β€œPowerful, but the setup might scare off the impatient.”

Security AnalysisMedium Risk

Risk: Medium. Review: shell/CLI command execution; outbound network access (SSRF, data egress); API keys/tokens handling and storage; filesystem read/write scope and path traversal. Run with least privilege and audit before enabling in production.

🌿 N8ture AI App - Wildlife & Plant Identification


πŸ“‹ Table of Contents


🎯 Overview

N8ture AI App is a cross-platform mobile application that uses advanced AI to identify species from photos. Whether you're a nature enthusiast, forager, or outdoor adventurer, this app helps you safely identify plants, animals, and fungi with confidence.

Why N8ture AI?

  • πŸ€– AI-Powered: Google Gemini Vision API for accurate species identification
  • πŸ”’ Safety First: Clear safety indicators for edibility and toxicity
  • πŸ“± Cross-Platform: Native iOS & Android apps using Kotlin Multiplatform
  • 🌐 Web Prototype: React-based web version for testing and development
  • πŸ’° Freemium Model: 3 free identifications, with premium subscriptions available

✨ Features

πŸ†“ Free Tier

  • 3 lifetime identifications
  • Basic species information
  • Safety warnings (edible/poisonous)
  • Confidence scoring
  • Common and scientific names

πŸ’Ž Premium ($4.99/month or $39.99/year)

  • βœ… Unlimited identifications
  • πŸ“Έ High-resolution image capture
  • πŸ“ Location tracking and mapping
  • πŸ—ΊοΈ Detailed habitat information
  • 🌿 Medicinal and herbal benefits
  • πŸ‘¨β€πŸ³ Cooking methods and recipes
  • πŸ“΄ Offline mode (50 species cache)
  • πŸ“Š Export identification history
  • πŸ”” Priority support

πŸ” Identification Categories

  • 🌱 Plants: Trees, flowers, shrubs, grasses
  • 🦌 Wildlife: Mammals, birds, reptiles, amphibians
  • πŸ„ Fungi: Mushrooms, lichens, molds
  • πŸ› Insects: Butterflies, beetles, spiders

πŸ›‘οΈ Safety Indicators

  • 🟒 Safe/Edible: Confirmed safe for consumption
  • 🟑 Caution: Edible with proper preparation/cooking
  • πŸ”΄ Dangerous/Poisonous: Toxic or harmful
  • βšͺ Unknown: Insufficient data for determination

πŸ“ Project Structure

This repository contains two parallel implementations:

N8ture-AI-App/
β”‚
β”œβ”€β”€ Walker App/KAppMakerExtended-main/          # πŸ“± Production: Kotlin Multiplatform Mobile
β”‚   β”œβ”€β”€ composeApp/                             # Main app module
β”‚   β”‚   β”œβ”€β”€ src/commonMain/                     # Shared Kotlin code
β”‚   β”‚   β”‚   β”œβ”€β”€ domain/                         # Business logic & models
β”‚   β”‚   β”‚   β”œβ”€β”€ data/                           # Repositories & data sources
β”‚   β”‚   β”‚   └── presentation/                   # UI screens & components
β”‚   β”‚   β”œβ”€β”€ src/androidMain/                    # Android-specific code
β”‚   β”‚   └── src/iosMain/                        # iOS-specific code
β”‚   β”œβ”€β”€ iosApp/                                 # iOS native wrapper
β”‚   └── designsystem/                           # Shared design system
β”‚
β”œβ”€β”€ AI App for.../wildlife-id-app-complete/     # 🌐 Web Prototype: React + Flask
β”‚   └── wildlife-id-app/
β”‚       β”œβ”€β”€ src/                                # React frontend
β”‚       β”‚   β”œβ”€β”€ components/ui/                  # shadcn/ui components
β”‚       β”‚   └── App.jsx                         # Main app logic
β”‚       └── backend/                            # Flask backend (mock AI)
β”‚           └── app.py                          # API endpoints
β”‚
β”œβ”€β”€ CLAUDE.md                                   # πŸ€– Developer guide for Claude Code
β”œβ”€β”€ README.md                                   # πŸ“– This file
β”œβ”€β”€ N8ture AI App_MVP_PRD.md                   # Product requirements
β”œβ”€β”€ N8ture AI App_Implementation_Guide.md      # Technical implementation details
└── AppStructure_PRD.md                        # API migration guide (Replicate β†’ Gemini)

πŸ› οΈ Tech Stack

Kotlin Multiplatform Mobile (Production App)

| Component | Technology | |-----------|-----------| | Platform | Kotlin Multiplatform Mobile (KMM) | | UI Framework | Compose Multiplatform + Material Design 3 | | Backend | Firebase (Auth, Firestore, Storage, Analytics, Crashlytics) | | AI Engine | Google Gemini Vision API | | Database | Room (SQLite) with multiplatform support | | Networking | Ktor Client | | Dependency Injection | Koin | | Subscriptions | RevenueCat (StoreKit 2 for iOS, Google Play Billing 5 for Android) | | Image Loading | Coil (Compose) | | Serialization | Kotlinx Serialization |

Platform Targets:

  • Android: Min SDK 24 (Android 7.0), Target SDK 35
  • iOS: Min iOS 14.0, Target iOS 17.0

React Web Prototype

| Component | Technology | |-----------|-----------| | Frontend | React 19 + Vite | | UI Library | shadcn/ui (Radix UI primitives) | | Styling | Tailwind CSS v4 | | Routing | React Router v7 | | Forms | React Hook Form + Zod validation | | Backend | Flask (Python 3) | | Package Manager | pnpm 10.4.1 |


πŸš€ Getting Started

Prerequisites

For Kotlin App:

  • β˜• JDK 17 or higher
  • πŸ€– Android Studio Hedgehog (2023.1.1) or later
  • 🍎 Xcode 15+ (for iOS development, macOS only)
  • πŸ”§ kdoctor (for system verification)

For React Prototype:

  • πŸ“¦ Node.js 18+
  • πŸ”₯ pnpm 10.4.1
  • 🐍 Python 3.8+

πŸ“± Kotlin Multiplatform Setup

1. Navigate to Project Directory

cd "Walker App/KAppMakerExtended-main"

2. Configure API Keys

Copy the template and add your credentials:

cp local.properties.template local.properties

Edit local.properties:

sdk.dir=/path/to/Android/sdk # Google Gemini API (https://ai.google.dev/) GEMINI_API_KEY=your_gemini_api_key # Firebase Web Client ID GOOGLE_WEB_CLIENT_ID=your_client_id.apps.googleusercontent.com # RevenueCat API Keys (https://revenuecat.com/) REVENUECAT_ANDROID_API_KEY=your_android_key REVENUECAT_IOS_API_KEY=your_ios_key # AdMob IDs (optional) ADMOB_APP_ID_ANDROID=ca-app-pub-xxx ADMOB_BANNER_AD_ID_ANDROID=ca-app-pub-xxx ADMOB_INTERSTITIAL_AD_ID_ANDROID=ca-app-pub-xxx ADMOB_REWARDED_AD_ID_ANDROID=ca-app-pub-xxx ADMOB_BANNER_AD_ID_IOS=ca-app-pub-xxx ADMOB_INTERSTITIAL_AD_ID_IOS=ca-app-pub-xxx ADMOB_REWARDED_AD_ID_IOS=ca-app-pub-xxx

3. Firebase Configuration

  1. Create a Firebase project at console.firebase.google.com
  2. Add Android app with package com.measify.kappmaker
  3. Add iOS app with bundle ID com.measify.kappmaker
  4. Download configuration files:
    • google-services.json β†’ Place in composeApp/
    • GoogleService-Info.plist β†’ Place in iosApp/iosApp/

4. RevenueCat Setup (Optional)

  1. Create account at revenuecat.com
  2. Configure products:
    • wildid_premium_monthly - $4.99/month
    • wildid_premium_annual - $39.99/year
  3. Add API keys to local.properties

5. Build the App

Android:

# Build debug APK ./gradlew :composeApp:assembleDebug # Output: composeApp/build/outputs/apk/debug/composeApp-debug.apk # Run on connected device ./gradlew :composeApp:installDebug # Run tests ./gradlew :composeApp:connectedDebugAndroidTest

iOS (macOS only):

cd iosApp pod install open iosApp.xcworkspace

Or use the Kotlin Multiplatform Mobile plugin in Android Studio.


🌐 React Web Prototype Setup

1. Navigate to Project Directory

cd "AI App for Identifying Wildlife, Plants, and Edibility/wildlife-id-app-complete/wildlife-id-app"

2. Install Dependencies

# Frontend pnpm install # Backend cd backend pip3 install -r requirements.txt cd ..

3. Start Development Servers

Terminal 1 - Backend:

cd backend python3 app.py # Backend runs at http://localhost:5000

Terminal 2 - Frontend:

pnpm dev # Frontend runs at http://localhost:5173 # For network access: pnpm dev -- --host

4. Build for Production

pnpm build pnpm preview

πŸ”¨ Development

Cleaning & Troubleshooting

# Clean build artifacts ./gradlew clean # Clean and rebuild ./gradlew clean :composeApp:assembleDebug # Verify system setup kdoctor # Check JDK version (must be 17+) java -version

Testing Commands

# Run common tests (shared code) ./gradlew :composeApp:commonTest # Run Android instrumented tests ./gradlew :composeApp:connectedDebugAndroidTest # Run iOS simulator tests ./gradlew :composeApp:iosSimulatorArm64Test # Get signing certificate SHA1 (for Firebase) ./gradlew :composeApp:signingReport

Code Architecture

Domain Layer (Business Logic)

// Species identification use case val result = identifySpeciesUseCase( imageData = capturedImage, category = SpeciesCategory.PLANT, isSubscribed = user.isPremium ) result.onSuccess { identification -> val confidence = identification.primaryMatch.getConfidencePercentage() // 85% val species = identification.primaryMatch.species val safety = species.edibility // EDIBLE, POISONOUS, etc. }

Trial Management

val trialState = trialManager.getTrialState() // TrialState(remainingIdentifications=3, isTrialExpired=false) if (trialManager.canIdentify()) { trialManager.useTrialIdentification(
5-Dim Analysis
Clarity8/10
Novelty8/10
Utility9/10
Completeness8/10
Maintainability7/10
Pros & Cons

Pros

  • AI-powered accurate identifications
  • Safety warnings for edibility
  • Cross-platform availability
  • Freemium model with premium features

Cons

  • Limited free identifications
  • Requires API keys for setup
  • Dependency on internet for some features
  • Potential privacy concerns with image uploads

Related Skills

pytorch

S
toolCode Lib
92/ 100

β€œIt's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.”

agno

S
toolCode Lib
90/ 100

β€œIt promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.”

nuxt-skills

S
toolCo-Pilot
90/ 100

β€œIt's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.”

Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.

Copyright belongs to the original author kelvincushman.