Project Story

Plant Identifier mobile application ready to be monetized.

Inspiration

I spent nearly a month researching what mobile application I should tackle next. I wanted a project that combined high-level AI capabilities with practical, consumer-facing utility. I initially considered an "Object Counting" application for industrial use, but ultimately realized that it was a niche, industrial use case.

I decided to develop a Plant Identifier because plants exist everywhere and people like plants. I developed an MVP that acts as a digital botanical companion. This is a kind of "Evergreen app" (a software application designed for longevity, aiming to remain relevant, functional, and useful for many years without becoming obsolete).

What it does

Users can snap a high-resolution photo of any plant, which is then processed through a secure AWS pipeline.

The app performs a two-stage AI analysis: Identification: It uses Amazon Nova Pro for rock-solid reliability in image recognition, identifying the scientific name, common name, and plant type in any visual environments. Once identified, it utilizes Amazon Nova Lite to generate exhaustive care details—including light needs, maintenance levels, soil types, and even history—providing a "deep dive" into the plant's life.

How I built it

The project is built on a "local-first but cloud-synced" architecture:

Frontend: Developed with React Native (Expo) to ensure a smooth, cross-platform experience. I implemented custom animated gradients and a video-driven onboarding flow to create a premium feel.

Backend: A completely serverless architecture using AWS Lambda.

AI Engine: Integrated via AWS Bedrock. I utilized the "Tools" (Function Calling) feature to ensure the LLM outputs strictly structured JSON data, preventing UI crashes.

Storage & Auth: Images are stored in Amazon S3 (using private, per-user identity folders), while plant metadata is cached in Amazon DynamoDB. AWS Amplify handles the secure authentication flow.

Monetization: Integrated RevenueCat to handle "Pro" subscriptions and a virtual credit system for free-tier users.

Challenges I ran into

One of the biggest hurdles was Schema Rigidity. Getting an LLM to consistently return valid JSON with specific required fields (like scientific names and water frequency) required significant prompt engineering and tool configuration hardening.

Another challenge I ran into is getting images for third party providers like Unsplash or Pexels. I could not make this deterministic. Some images were out of the box, far from what the user expected. As an example, If I asked those APIs to return images of a 'Canary Palm' they could return buildings, landscapes... something very random.

This can be fixed adding another layer of AI to analyze the returned images and validate that they are plants prior sending them to the client. But I delayed this step for now.

Accomplishments that I'm proud of

Hybrid Model Strategy: I successfully implemented a cost-effective but high-performance AI strategy by using the "expensive" Nova Pro only for visual ID and the faster Nova Lite for text generation.

A background synchronization logic that lets users work offline (saving to a local CSV) and cross-device that automatically pushes data to the cloud when they're back online.

User Experience: Building an onboarding flow that doesn't just ask for a signup, but educates the user through a polished, animated interface.

What I learned

As a game developer, I've never programmed an application before. I had a bit of experience with AWS due to previous multiplier games developed before. The hackathon gave me the motivation I needed to explore the development of mobile apps and vibe coding. Also, I've never worked with RevenueCat before. This project gave me the skills to work with RevenueCat for future developments.

What's next for Plant Identifier

  • Publish it to Apple Store and Google Play before this hackathon concludes.
  • Run a real test. If I see good feedback and some money, I will further expand it with more app features such as plant diagnosis, plant care alarms, plant blogs and maybe a way you can chat with your plant.

Built With

Share this project:

Updates