Discover, Identify, and Nurture: Unleash the Power of Plants with our App!
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. 🌿☀️💧
🌿 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.🌿🌱🚀✨
Welcome to BotaniAI, an innovative project that brings together plant enthusiasts and technology. Follow the steps below to install and run the project seamlessly.
-
Clone the repository to your local machine and open it in your favorite IDE.
-
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.
-
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.
-
Expo Google Login Setup:
- To enable Google login on Expo, you need Expo Google login keys. Create these keys by following the Expo Google Authentication tutorial.
-
Create a new JavaScript file named
firebase-config.js
inside theFrontend/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"
-
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.
-
In the
Frontend\api
folder, locate thebackend.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.
- Install the project dependencies by running the following command inside the
Frontend
directory:
npm i
- Start the application using the following command:
npx expo start
- You can now view the mobile app in ExpoGo by scanning the QR code! 📱🔍
Follow these steps to seamlessly set up the backend of the project:
-
MongoDB Setup:
- Begin by creating a MongoDB database to store backend data.
- Make sure to copy the database connection link for later use.
-
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.
- Retrieve the Storage bucket info from your frontend's
-
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.
-
Firebase Service Account Info:
- Obtain your Firebase service account info following the instructions in this tutorial.
-
Firebase Service Account File:
- Save the downloaded
firebase_service_account.json
file into the Backend folder.
- Save the downloaded
-
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! 🔑
-
Environment Configuration:
- Create an
.env
file inside theBackend
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:
- Create an
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
- Install Dependencies:
- Install the project dependencies by running the following command inside the
Backend
directory:
- Install the project dependencies by running the following command inside the
npm i
- Start the Backend Server:
- Launch the backend server by running the following command in the
Backend
folder:
- Launch the backend server by running the following command in the
node server.js
- Get ready to unleash the full potential of the project by powering up the backend! 🚀✨
BotaniAI utilizes the following key libraries and technologies:
- Expo
- TypeScript
- Firebase
- React Native
- Axios
- ExpressJS
- MongoDB
- Swagger
- Firebase Admin
- Anaconda
- Jupyter Notebook
- NumPy
- TensorFlow
Experience the world of plants with BotaniAI! 🌿✨
This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.
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!