Skip to content

Discover, Identify, and Nurture: Unleash the Power of Plants with our App!

License

Notifications You must be signed in to change notification settings

zala-lahovnik/BotaniAI

Repository files navigation

BotaniAI logo

BotaniAI

🌿 Welcome to BotaniAI! 🌱

Discover, Identify, and Nurture: Unleash the Power of Plants with our App!

About

Discover the entrancing world of plants with our application that sprouted from a university project, driven by an unwavering passion for the green wonders of nature. 🌳

Our wish is to create an enchanting and user-friendly application that caters to beginners, plant enthusiasts, and anyone eager to unearth the secrets of plants and their care. 🌼

Let's dive into the captivating realm of BotaniAI and unlock the mysteries of nature together! 🌟🌺

🌍 Plants weave their magic into our daily lives, adorning our surroundings with their beauty and offering countless benefits. But how well do we truly know and understand them?

Get ready to unlock the secrets of the botanical kingdom with a single snap of your camera through the BotaniAI app. 📸 Our mobile application identifies a diverse array of plant species with just a quick photo. With the power of our classification model, it predicts the plant species and empowers you with a treasure trove of detailed information about the species, all at your fingertips. ☝️

Are you ready to embark on an extraordinary botanical journey?

Let's dive into the green wonderland together 🤝, explore the hidden gems 💎 of nature, and unlock the keys 🔑 to proper plant care. 🌿☀️💧

Key features:

🌿 Snap a Photo, Unlock the Secrets: Capture any plant in a photo and let our app work its magic. Our classification model identifies the plant species and provides fascinating insights into its world.

🌱 Cultivate Your Virtual Garden: Create your very own oasis in our app's virtual garden. Save your favorite plants and personalize their care. Set watering schedules and receive handy push notifications, ensuring their health and vitality.

🌸 A Haven for Plant Lovers: Whether you're a seasoned enthusiast or just getting started, our app is a must-have for all plant lovers. Dive into a wealth of information about different plant species and master the art of proper plant care.

Embark on an extraordinary botanical journey today.🌿🌱🚀✨

BotaniAI: Installation and Setup Guide

Welcome to BotaniAI, an innovative project that brings together plant enthusiasts and technology. Follow the steps below to install and run the project seamlessly.

Frontend Setup

  1. Clone the repository to your local machine and open it in your favorite IDE.

  2. Firebase Project Setup:

    • Create a new project in the Firebase Console. Need help? Check out the Firebase Console Project creation guide.
    • Open the Apps section of your project in Firebase Console, locate the Web App, and open it to find the Firebase Config data.
  3. Firebase Function Setup:

    • To run the classification model, you'll need to host your own Firebase Function. Follow the official Firebase Functions tutorial to set up Firebase Functions. Note: Overwrite the existing files as Firebase Functions are already initialized.
    • Add the location of your hosted Python Firebase Function by appending a line to the firebase-config.js file.
  4. Expo Google Login Setup:

  5. Create a new JavaScript file named firebase-config.js inside the Frontend/firebase folder. Use the Firebase Config data, Firebase Function location, and Expo Google login keys to populate the file. The structure should resemble the example below:

export const API_KEY="API_KEY_VALUE"
export const AUTH_DOMAIN="AUTH_DOMAIN_VALUE"
export const PROJECT_ID="PROJECT_ID_VALUE"
export const STORAGE_BUCKET="STORAGE_BUCKET_VALUE"
export const MESSAGING_SENDER_ID="MESSAGING_SENDER_ID_VALUE"
export const APP_ID="APP_ID_VALUE"
export const FUNCTIONS_REGION="FUNCTIONS_REGION_VALUE"
export const GOOGLE_ANDROID="GOOGLE_ANDROID_VALUE"
export const GOOGLE_IOS="GOOGLE_IOS_VALUE"
export const GOOGLE_EXPO="GOOGLE_EXPO_VALUE"
  1. If you decide not to use Firebase Functions, don't worry! Simply comment out the relevant code sections. But keep in mind, some of the app's key features might be missed along the way.

  2. In the Frontend\api folder, locate the backend.ts file. Let it know the location of your backend server by adding this captivating line:

export const BACKEND_BASE_URI = 'BACKEND_BASE_URI_VALUE'

Replace BACKEND_BASE_URI_VALUE with the actual URI of your backend server, and let the frontend and backend dance together harmoniously.

  1. Install the project dependencies by running the following command inside the Frontend directory:
npm i
  1. Start the application using the following command:
npx expo start
  1. You can now view the mobile app in ExpoGo by scanning the QR code! 📱🔍

Backend Setup

Follow these steps to seamlessly set up the backend of the project:

  1. MongoDB Setup:

    • Begin by creating a MongoDB database to store backend data.
    • Make sure to copy the database connection link for later use.
  2. Firebase Storage Bucket Info:

    • Retrieve the Storage bucket info from your frontend's firebase-config.js file.
    • Copy the required information from the file and paste it here.
  3. Firebase Database URL Info:

    • Obtain the Database URL info from your Firebase console, just like you did for the mobile app setup.
    • Need a refresher? Follow this tutorial to find the Database URL.
  4. Firebase Service Account Info:

    • Obtain your Firebase service account info following the instructions in this tutorial.
  5. Firebase Service Account File:

    • Save the downloaded firebase_service_account.json file into the Backend folder.
  6. jwtToken Secret:

    • Unleash your creativity and generate a unique token secret that will safeguard the power of authentication. Or, if you prefer, let your imagination run wild and come up with a secret that truly reflects your project. Embrace the excitement of secrecy and add it to the .env file to fortify your application's security. Keep the key to the kingdom in your hands! 🔑
  7. Environment Configuration:

    • Create an .env file inside the Backend directory.
    • Paste the MongoDB connection link, Storage bucket info, Firebase database URL and the name of the firebase_service_account.json file, as shown below:
DATABASE_URI=mongodb://username:password@localhost:27017/database_name
FIREBASE_DATABASE_URL=YOUR_DATABASE_URL
STORAGE_BUCKET=STORAGE_BUCKET_VALUE
SERVICE_ACCOUNT=firebase_service_account.json
TOKEN_SECRET=YOUR_TOKEN_SECRET_VALUE
  1. Install Dependencies:
    • Install the project dependencies by running the following command inside the Backend directory:
npm i
  1. Start the Backend Server:
    • Launch the backend server by running the following command in the Backend folder:
node server.js
  1. Get ready to unleash the full potential of the project by powering up the backend! 🚀✨

Technologies Used

BotaniAI utilizes the following key libraries and technologies:

Frontend

  • Expo
  • TypeScript
  • Firebase
  • React Native
  • Axios

Backend

  • ExpressJS
  • MongoDB
  • Swagger
  • Firebase Admin

Classification

  • Anaconda
  • Jupyter Notebook
  • NumPy
  • TensorFlow

Experience the world of plants with BotaniAI! 🌿✨

License

This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.

Disclaimer

This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!

About

Discover, Identify, and Nurture: Unleash the Power of Plants with our App!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published