├── .gitignore
├── README.md
├── config
└── db.js
├── controller
└── plantController.js
├── frontend
├── .gitignore
├── README.md
├── package-lock.json
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo.png
│ ├── logo192.png
│ ├── manifest.json
│ ├── model
│ │ ├── group1-shard1of3.bin
│ │ ├── group1-shard2of3.bin
│ │ ├── group1-shard3of3.bin
│ │ └── model.json
│ └── robots.txt
├── src
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── Assets
│ │ ├── HTML.png
│ │ ├── Logo.png
│ │ ├── React.png
│ │ ├── background1.jpeg
│ │ ├── background2.jpeg
│ │ ├── css.png
│ │ ├── flowchart.png
│ │ ├── javaScript.png
│ │ ├── mongoDB.png
│ │ ├── nodeJS.jpg
│ │ ├── python.jpg
│ │ ├── tensorFlow.png
│ │ ├── title_background.jpeg
│ │ ├── upload_image.png
│ │ └── website.jpeg
│ ├── data
│ │ └── plantClasses.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ ├── pages
│ │ ├── Dragdrop.js
│ │ ├── Feedback.js
│ │ ├── FeedbackPage.js
│ │ ├── Home.js
│ │ ├── Result.js
│ │ ├── Typewriter.js
│ │ └── footer.js
│ ├── reportWebVitals.js
│ ├── routes
│ │ └── MLRouting.js
│ ├── setupTests.js
│ ├── spinner.js
│ └── style
│ │ ├── dragDropStyle.css
│ │ ├── footerStyle.js
│ │ └── responseModel.css
└── tailwind.config.js
├── models
├── feedbackModel.js
└── plantModel.js
├── package-lock.json
├── package.json
├── public
└── uploads
│ └── plant-features.csv
├── routes
└── plantRoute.js
└── server.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
3 | .env
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Team-43 Tech Tenets
2 | ## Switch to 'finalTake' branch to see the final project.
3 |
4 |
5 |
6 | # Project:Medicinal Plant Detection Using Machine Learning
7 | The project aims to develop a machine learning model for the identification and classification of medicinal plants from images and create a user-friendly web application to provide valuable information about these plants.
8 |
9 | # Problem Statement
10 | India, with a rich heritage of floral diversity, is well-known for its medicinal plant wealth, but their identification is one of the major burning issues in Ayurvedic Pharmaceutics. Several crude drugs are being sold under the same name in the market leading to confusion and their misidentification. Even the collectors and traders are not completely aware of the exact morphological appearance or differentiating attributes of the many drugs owing to seasonal and geographical availability, and similar characteristics. Moreover, the extensive consumption to meet demand-supply ratio exerts a heavy strain on the existing resources. It further leads to the practice of adulteration, substitution, and disbelief in the curative capability of the system eventually.This project addresses the need for a reliable tool to identify and learn about medicinal plants.
11 |
12 | # Data Collection:
13 | Gather a diverse dataset of images of medicinal plants. The dataset should include various species of medicinal plant.
14 |
15 | # Machine Learning Model:
16 | Train a machine learning model (e.g., convolutional neural network) using the collected dataset. The model's primary task is to classify images of medicinal plants into their respective species or categories.
17 |
18 |
19 |
20 |
21 | # Web Application Development:
22 | Create a web application that allows users to upload images of medicinal plants or enter descriptions. The application should offer the following features:
23 |
24 | * Plant Identification: The ML model should classify the uploaded images and provide information about the identified plant, including its scientific name, common name, medicinal properties, and uses.
25 | * Plant Information: Include a database of medicinal plants with detailed information, including images, descriptions Users can browse this database.
26 | * Search and Filter: Implement search and filter options to help users find specific plants or information quickly.
27 | * User Interaction: Allow users to submit feedback, ask questions, or contribute their own plant observations.
28 | * Compatibility: Ensure that the web application is responsive and accessible on desktop.
29 | # User Interface Design:
30 | Design an intuitive and user-friendly interface for the web application. Focus on ease of use, accessibility, and a visually appealing layout.
31 | # Testing and Evaluation:
32 | Thoroughly test the machine learning model and web application to ensure accuracy, reliability, and performance. Collect user feedback and make improvements accordingly.
33 | # User Education:
34 | Provide educational resources on the web application to help users learn about medicinal plants, their uses, and the importance of conservation.
35 |
36 | This project not only serves as a valuable tool for plant enthusiasts, herbalists, and researchers but also contributes to the conservation and sustainable use of medicinal plants.
37 |
38 | # Website:
39 |
40 |
41 | # Tech Stack Used:
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/config/db.js:
--------------------------------------------------------------------------------
1 | import mongoose from "mongoose";
2 |
3 | const connectDB = async () => {
4 | try {
5 | const conn = await mongoose.connect(process.env.MONGO_URL);
6 | console.log(
7 | `Connected to mongodb host : ${conn.connection.host}`.bgMagenta.white
8 | );
9 | } catch (error) {
10 | console.log(`Error in mongodb : ${error}`.bgRed.white);
11 | }
12 | };
13 |
14 | export default connectDB;
15 |
--------------------------------------------------------------------------------
/controller/plantController.js:
--------------------------------------------------------------------------------
1 | import plantModel from "../models/plantModel.js";
2 | import fs from "fs";
3 | import csv from "csvtojson";
4 | import feedbackModel from "../models/feedbackModel.js";
5 |
6 | export const getPlantController = async (req, res) => {
7 | try {
8 | const { name } = req.params;
9 | console.log(name);
10 | const plant = await plantModel.findOne({ scientificName: name });
11 | res.status(201).send({
12 | success: true,
13 | message: "Plant retrived sucessfully",
14 | plant,
15 | });
16 | } catch (error) {
17 | console.log(error);
18 | res.status(500).send({
19 | success: false,
20 | error,
21 | message: "error in getting plant details",
22 | });
23 | }
24 | };
25 |
26 | export const uploadPlantController = async (req, res) => {
27 | try {
28 | var plantData = [];
29 | const filePath = req.file.path;
30 | csv()
31 | .fromFile(filePath)
32 | .then(async (response) => {
33 | for (var x = 0; x < response.length; x++) {
34 | plantData.push({
35 | scientificName: response[x].scientificName,
36 | localName: response[x].localName,
37 | features: response[x].features,
38 | photo: response[x].photo,
39 | });
40 | }
41 | await plantModel.insertMany(plantData);
42 | });
43 | res.status(200).send({
44 | success: true,
45 | message: "upload successful",
46 | });
47 | } catch (error) {
48 | console.log(error);
49 | res.status(500).send({
50 | success: false,
51 | error,
52 | message: "error in getting plant details",
53 | });
54 | }
55 | };
56 | export const postFeedback = async (req, res) => {
57 | try {
58 | const { score, description } = req.body; //req.fileds
59 | if (!score) {
60 | return res.send({ message: "Score is required!" });
61 | }
62 | if (!description) {
63 | return res.send({ message: "Description is required!" });
64 | }
65 | const feed = await new feedbackModel({
66 | score,
67 | description,
68 | }).save();
69 | res.status(200).send({
70 | success: true,
71 | message: "review posted successfully",
72 | feed,
73 | });
74 | } catch (error) {
75 | console.log(error);
76 | res.status(500).send({
77 | success: false,
78 | error,
79 | message: "error in posting review",
80 | });
81 | }
82 | };
83 |
84 | export const getFeedback = async (req, res) => {
85 | try {
86 | const feed = await feedbackModel.find({}).sort({ createdAt: -1 });
87 | res.status(201).send({
88 | success: true,
89 | totalCount: feed.length,
90 | message: "Feedback",
91 | feed,
92 | });
93 | } catch (error) {
94 | console.log(error);
95 | res.status(500).send({
96 | success: false,
97 | error,
98 | message: "error in getting feedback",
99 | });
100 | }
101 | };
102 | export const getResultName = async (req, res) => {
103 | try {
104 | async function loadImage(file) {
105 | return new Promise((resolve) => {
106 | const reader = new FileReader();
107 | reader.onload = (event) => {
108 | const img = new Image();
109 | img.onload = () => resolve(tf.browser.fromPixels(img));
110 | img.src = event.target.result;
111 | };
112 | reader.readAsDataURL(file);
113 | });
114 | }
115 |
116 | function preprocessImage(image) {
117 | const resizedImage = tf.image.resizeBilinear(image, [128, 128]); // Adjust size if necessary
118 | return resizedImage;
119 | }
120 |
121 | // Setting up tfjs with the model we downloaded
122 | tf.loadGraphModel("model1/model.json").then(function (model) {
123 | window.model = model;
124 | });
125 |
126 | var predict = function (input) {
127 | if (window.model) {
128 | window.model
129 | .predict([tf.tensor(input).reshape([28, 28, 1])])
130 | .array()
131 | .then(function (scores) {
132 | scores = scores[0];
133 | predicted = scores.indexOf(Math.max(...scores));
134 | });
135 | } else {
136 | // The model takes a bit to load,
137 | // if we are too fast, wait
138 | setTimeout(function () {
139 | predict(input);
140 | }, 50);
141 | }
142 | };
143 | const file = req.body;
144 | if (file) {
145 | // Read and preprocess the selected image
146 | const image = await loadImage(file);
147 | let tensor = preprocessImage(image);
148 |
149 | // let tensor = image;
150 | tensor = tf.expandDims(tensor, 0);
151 |
152 | // Make predictions using the model
153 | // console.log(model);
154 | const predictions = await model.predict(tensor);
155 | let scores = await tf.softmax(predictions).data();
156 | index = scores.indexOf(Math.max(...scores));
157 | const name = plantClasses[index];
158 |
159 | res.status(201).send({
160 | success: true,
161 | totalCount: feed.length,
162 | message: "Feedback",
163 | name,
164 | });
165 | }
166 | } catch (error) {
167 | console.log(error);
168 | res.status(500).send({
169 | success: false,
170 | error,
171 | message: "error in getting feedback",
172 | });
173 | }
174 | };
175 |
--------------------------------------------------------------------------------
/frontend/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/frontend/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/frontend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "frontend",
3 | "proxy": "http://localhost:8080",
4 | "version": "0.1.0",
5 | "private": true,
6 | "dependencies": {
7 | "@fortawesome/fontawesome-svg-core": "^6.4.2",
8 | "@fortawesome/free-brands-svg-icons": "^6.4.2",
9 | "@fortawesome/free-regular-svg-icons": "^6.4.2",
10 | "@fortawesome/free-solid-svg-icons": "^6.4.2",
11 | "@fortawesome/react-fontawesome": "^0.2.0",
12 | "@mantine/core": "^6.0.20",
13 | "@tensorflow/tfjs": "^4.11.0",
14 | "@testing-library/jest-dom": "^5.17.0",
15 | "@testing-library/react": "^13.4.0",
16 | "@testing-library/user-event": "^13.5.0",
17 | "axios": "^1.5.0",
18 | "bootstrap": "^5.3.2",
19 | "react": "^18.2.0",
20 | "react-dom": "^18.2.0",
21 | "react-dropzone": "^14.2.3",
22 | "react-router-dom": "^6.16.0",
23 | "react-scripts": "5.0.1",
24 | "slugify": "^1.6.6",
25 | "web-vitals": "^2.1.4"
26 | },
27 | "scripts": {
28 | "start": "react-scripts start",
29 | "build": "react-scripts build",
30 | "test": "react-scripts test",
31 | "eject": "react-scripts eject"
32 | },
33 | "eslintConfig": {
34 | "extends": [
35 | "react-app",
36 | "react-app/jest"
37 | ]
38 | },
39 | "browserslist": {
40 | "production": [
41 | ">0.2%",
42 | "not dead",
43 | "not op_mini all"
44 | ],
45 | "development": [
46 | "last 1 chrome version",
47 | "last 1 firefox version",
48 | "last 1 safari version"
49 | ]
50 | },
51 | "devDependencies": {
52 | "tailwindcss": "^3.3.3"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/frontend/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/public/favicon.ico
--------------------------------------------------------------------------------
/frontend/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
14 |
15 |
19 |
20 |
29 | React App
30 |
31 |
37 |
43 |
48 |
49 |
50 |
51 |
52 |
62 |
63 |
68 |
73 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/frontend/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/public/logo.png
--------------------------------------------------------------------------------
/frontend/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/public/logo192.png
--------------------------------------------------------------------------------
/frontend/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/frontend/public/model/group1-shard1of3.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/public/model/group1-shard1of3.bin
--------------------------------------------------------------------------------
/frontend/public/model/group1-shard2of3.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/public/model/group1-shard2of3.bin
--------------------------------------------------------------------------------
/frontend/public/model/group1-shard3of3.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/public/model/group1-shard3of3.bin
--------------------------------------------------------------------------------
/frontend/public/model/model.json:
--------------------------------------------------------------------------------
1 | {"format": "graph-model", "generatedBy": "2.13.0", "convertedBy": "TensorFlow.js Converter v4.11.0", "signature": {"inputs": {"sequential_input": {"name": "sequential_input:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "128"}, {"size": "128"}, {"size": "3"}]}}}, "outputs": {"outputs": {"name": "Identity:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "200"}]}}}}, "modelTopology": {"node": [{"name": "StatefulPartitionedCall/sequential_1/rescaling_1/Cast/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/rescaling_1/Cast_1/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d/Conv2D/ReadVariableOp", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "3"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_1/Conv2D/ReadVariableOp", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_1/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_2/Conv2D/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "64"}]}}}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_2/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/flatten/Const", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/sequential_1/dense/MatMul/ReadVariableOp", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16384"}, {"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/dense/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}}, {"name": "StatefulPartitionedCall/sequential_1/outputs/MatMul/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}, {"size": "200"}]}}}}}, {"name": "StatefulPartitionedCall/sequential_1/outputs/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "200"}]}}}}}, {"name": "sequential_input", "op": "Placeholder", "attr": {"dtype": {"type": "DT_FLOAT"}, "shape": {"shape": {"dim": [{"size": "-1"}, {"size": "128"}, {"size": "128"}, {"size": "3"}]}}}}, {"name": "StatefulPartitionedCall/sequential_1/rescaling_1/mul", "op": "Mul", "input": ["sequential_input", "StatefulPartitionedCall/sequential_1/rescaling_1/Cast/x"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/rescaling_1/add", "op": "AddV2", "input": ["StatefulPartitionedCall/sequential_1/rescaling_1/mul", "StatefulPartitionedCall/sequential_1/rescaling_1/Cast_1/x"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/sequential_1/rescaling_1/add", "StatefulPartitionedCall/sequential_1/conv2d/Conv2D/ReadVariableOp", "StatefulPartitionedCall/sequential_1/conv2d/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"filter_format": {"s": "SFdJTw=="}, "leakyrelu_alpha": {"f": 0.2}, "explicit_paddings": {"list": {}}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "epsilon": {"f": 0.0}, "use_cudnn_on_gpu": {"b": true}, "num_host_args": {"i": "0"}, "TArgs": {"list": {"type": ["DT_FLOAT"]}}, "T": {"type": "DT_FLOAT"}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "data_format": {"s": "TkhXQw=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "U0FNRQ=="}, "num_args": {"i": "1"}}}, {"name": "StatefulPartitionedCall/sequential_1/max_pooling2d/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/sequential_1/conv2d/Relu"], "attr": {"explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}, "ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_1/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/sequential_1/max_pooling2d/MaxPool", "StatefulPartitionedCall/sequential_1/conv2d_1/Conv2D/ReadVariableOp", "StatefulPartitionedCall/sequential_1/conv2d_1/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "leakyrelu_alpha": {"f": 0.2}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "epsilon": {"f": 0.0}, "num_host_args": {"i": "0"}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "filter_format": {"s": "SFdJTw=="}, "num_args": {"i": "1"}, "TArgs": {"list": {"type": ["DT_FLOAT"]}}, "use_cudnn_on_gpu": {"b": true}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/sequential_1/max_pooling2d_1/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/sequential_1/conv2d_1/Relu"], "attr": {"T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_2/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/sequential_1/max_pooling2d_1/MaxPool", "StatefulPartitionedCall/sequential_1/conv2d_2/Conv2D/ReadVariableOp", "StatefulPartitionedCall/sequential_1/conv2d_2/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "num_host_args": {"i": "0"}, "epsilon": {"f": 0.0}, "filter_format": {"s": "SFdJTw=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "num_args": {"i": "1"}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}, "TArgs": {"list": {"type": ["DT_FLOAT"]}}, "explicit_paddings": {"list": {}}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "leakyrelu_alpha": {"f": 0.2}}}, {"name": "StatefulPartitionedCall/sequential_1/max_pooling2d_2/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/sequential_1/conv2d_2/Relu"], "attr": {"explicit_paddings": {"list": {}}, "padding": {"s": "VkFMSUQ="}, "data_format": {"s": "TkhXQw=="}, "ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}}, {"name": "StatefulPartitionedCall/sequential_1/flatten/Reshape", "op": "Reshape", "input": ["StatefulPartitionedCall/sequential_1/max_pooling2d_2/MaxPool", "StatefulPartitionedCall/sequential_1/flatten/Const"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/sequential_1/dense/Relu", "op": "_FusedMatMul", "input": ["StatefulPartitionedCall/sequential_1/flatten/Reshape", "StatefulPartitionedCall/sequential_1/dense/MatMul/ReadVariableOp", "StatefulPartitionedCall/sequential_1/dense/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "transpose_b": {"b": false}, "epsilon": {"f": 0.0}, "num_args": {"i": "1"}, "leakyrelu_alpha": {"f": 0.2}, "transpose_a": {"b": false}}}, {"name": "StatefulPartitionedCall/sequential_1/outputs/BiasAdd", "op": "_FusedMatMul", "input": ["StatefulPartitionedCall/sequential_1/dense/Relu", "StatefulPartitionedCall/sequential_1/outputs/MatMul/ReadVariableOp", "StatefulPartitionedCall/sequential_1/outputs/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"transpose_a": {"b": false}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "leakyrelu_alpha": {"f": 0.2}, "T": {"type": "DT_FLOAT"}, "transpose_b": {"b": false}, "epsilon": {"f": 0.0}, "num_args": {"i": "1"}}}, {"name": "StatefulPartitionedCall/sequential_1/outputs/Softmax", "op": "Softmax", "input": ["StatefulPartitionedCall/sequential_1/outputs/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity", "op": "Identity", "input": ["StatefulPartitionedCall/sequential_1/outputs/Softmax"], "attr": {"T": {"type": "DT_FLOAT"}}}], "library": {}, "versions": {"producer": 1482}}, "weightsManifest": [{"paths": ["group1-shard1of3.bin", "group1-shard2of3.bin", "group1-shard3of3.bin"], "weights": [{"name": "StatefulPartitionedCall/sequential_1/rescaling_1/Cast/x", "shape": [], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/rescaling_1/Cast_1/x", "shape": [], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/conv2d/Conv2D/ReadVariableOp", "shape": [3, 3, 3, 32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/conv2d/BiasAdd/ReadVariableOp", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_1/Conv2D/ReadVariableOp", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_1/BiasAdd/ReadVariableOp", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_2/Conv2D/ReadVariableOp", "shape": [3, 3, 32, 64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/conv2d_2/BiasAdd/ReadVariableOp", "shape": [64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/flatten/Const", "shape": [2], "dtype": "int32"}, {"name": "StatefulPartitionedCall/sequential_1/dense/MatMul/ReadVariableOp", "shape": [16384, 128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/dense/BiasAdd/ReadVariableOp", "shape": [128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/outputs/MatMul/ReadVariableOp", "shape": [128, 200], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential_1/outputs/BiasAdd/ReadVariableOp", "shape": [200], "dtype": "float32"}]}]}
--------------------------------------------------------------------------------
/frontend/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/frontend/src/App.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/App.css
--------------------------------------------------------------------------------
/frontend/src/App.js:
--------------------------------------------------------------------------------
1 | import { Routes, Route } from "react-router-dom";
2 | import "./App.css";
3 | import Home from "./pages/Home";
4 | import Result from "./pages/Result";
5 | import Dragdrop from "./pages/Dragdrop";
6 | import Feedback from "./pages/Feedback";
7 | import FeedbackPage from "./pages/FeedbackPage";
8 |
9 | function App() {
10 | return (
11 | <>
12 |
13 | } />
14 | } />
15 | } />
16 | } />
17 |
18 | >
19 | );
20 | }
21 |
22 | export default App;
23 |
--------------------------------------------------------------------------------
/frontend/src/App.test.js:
--------------------------------------------------------------------------------
1 | import { render, screen } from "@testing-library/react";
2 | import App from "./App";
3 |
4 | test("renders learn react link", () => {
5 | render();
6 | const linkElement = screen.getByText(/learn react/i);
7 | expect(linkElement).toBeInTheDocument();
8 | });
9 |
--------------------------------------------------------------------------------
/frontend/src/Assets/HTML.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/HTML.png
--------------------------------------------------------------------------------
/frontend/src/Assets/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/Logo.png
--------------------------------------------------------------------------------
/frontend/src/Assets/React.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/React.png
--------------------------------------------------------------------------------
/frontend/src/Assets/background1.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/background1.jpeg
--------------------------------------------------------------------------------
/frontend/src/Assets/background2.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/background2.jpeg
--------------------------------------------------------------------------------
/frontend/src/Assets/css.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/css.png
--------------------------------------------------------------------------------
/frontend/src/Assets/flowchart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/flowchart.png
--------------------------------------------------------------------------------
/frontend/src/Assets/javaScript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/javaScript.png
--------------------------------------------------------------------------------
/frontend/src/Assets/mongoDB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/mongoDB.png
--------------------------------------------------------------------------------
/frontend/src/Assets/nodeJS.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/nodeJS.jpg
--------------------------------------------------------------------------------
/frontend/src/Assets/python.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/python.jpg
--------------------------------------------------------------------------------
/frontend/src/Assets/tensorFlow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/tensorFlow.png
--------------------------------------------------------------------------------
/frontend/src/Assets/title_background.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/title_background.jpeg
--------------------------------------------------------------------------------
/frontend/src/Assets/upload_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/upload_image.png
--------------------------------------------------------------------------------
/frontend/src/Assets/website.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/Assets/website.jpeg
--------------------------------------------------------------------------------
/frontend/src/data/plantClasses.js:
--------------------------------------------------------------------------------
1 | export const plantClasses = [
2 | "Abelmoschus sagittifolius",
3 | "Abrus precatorius",
4 | "Abutilon indicum",
5 | "Acanthus integrifolius",
6 | "Acorus tatarinowii",
7 | "Agave americana",
8 | "Ageratum conyzoides",
9 | "Allium ramosum",
10 | "Alocasia macrorrhizos",
11 | "Aloe vera",
12 | "Alpinia officinarum",
13 | "Amomum longiligulare",
14 | "Ampelopsis cantoniensis",
15 | "Andrographis paniculata",
16 | "Angelica dahurica",
17 | "Ardisia sylvestris",
18 | "Artemisia vulgaris",
19 | "Artocarpus altilis",
20 | "Artocarpus heterophyllus",
21 | "Artocarpus lakoocha",
22 | "Asparagus cochinchinensis",
23 | "Asparagus officinalis",
24 | "Averrhoa carambola",
25 | "Baccaurea sp",
26 | "Barleria lupulina",
27 | "Bengal Arum",
28 | "Berchemia lineata",
29 | "Bidens pilosa",
30 | "Bischofia trifoliata",
31 | "Blackberry Lily",
32 | "Blumea balsamifera",
33 | "Boehmeria nivea",
34 | "Breynia vitis",
35 | "Caesalpinia sappan",
36 | "Callerya speciosa",
37 | "Callisia fragrans",
38 | "Calophyllum inophyllum",
39 | "Calotropis gigantea",
40 | "Camellia chrysantha",
41 | "Caprifoliaceae",
42 | "Capsicum annuum",
43 | "Carica papaya",
44 | "Catharanthus roseus",
45 | "Celastrus hindsii",
46 | "Celosia argentea",
47 | "Centella asiatica",
48 | "Citrus aurantifolia",
49 | "Citrus hystrix",
50 | "Clausena indica",
51 | "Cleistocalyx operculatus",
52 | "Clerodendrum inerme",
53 | "Clinacanthus nutans",
54 | "Clycyrrhiza uralensis fish",
55 | "Coix lacryma-jobi",
56 | "Cordyline fruticosa",
57 | "Costus speciosus",
58 | "Crescentia cujete Lin",
59 | "Crinum asiaticum",
60 | "Crinum latifolium",
61 | "Croton oblongifolius",
62 | "Croton tonkinensis",
63 | "Curculigo gracilis",
64 | "Curculigo orchioides",
65 | "Cymbopogon",
66 | "Datura metel",
67 | "Derris elliptica",
68 | "Dianella ensifolia",
69 | "Dicliptera chinensis",
70 | "Dimocarpus longan",
71 | "Dioscorea persimilis",
72 | "Eichhoriaceae crassipes",
73 | "Eleutherine bulbosa",
74 | "Erythrina variegata",
75 | "Eupatorium fortunei",
76 | "Eupatorium triplinerve",
77 | "Euphorbia hirta",
78 | "Euphorbia pulcherrima",
79 | "Euphorbia tirucalli",
80 | "Euphorbia tithymaloides",
81 | "Eurycoma longifolia",
82 | "Excoecaria cochinchinensis",
83 | "Excoecaria sp",
84 | "Fallopia multiflora",
85 | "Ficus auriculata",
86 | "Ficus racemosa",
87 | "Fructus lycii",
88 | "Glochidion eriocarpum",
89 | "Glycosmis pentaphylla",
90 | "Gonocaryum lobbianum",
91 | "Gymnema sylvestre",
92 | "Gynura divaricata",
93 | "Hemerocallis fulva",
94 | "Hemigraphis glaucescens",
95 | "Hibiscus mutabilis",
96 | "Hibiscus rosa sinensis",
97 | "Hibiscus sabdariffa",
98 | "Holarrhena pubescens",
99 | "Homalomena occulta",
100 | "Houttuynia cordata",
101 | "Imperata cylindrica",
102 | "Iris domestica",
103 | "Ixora coccinea",
104 | "Jasminum sambac",
105 | "Jatropha gossypiifolia",
106 | "Jatropha multifida",
107 | "Jatropha podagrica",
108 | "Justicia gendarussa",
109 | "Kalanchoe pinnata",
110 | "Lactuca indica",
111 | "Lantana camara",
112 | "Lawsonia inermis",
113 | "Leea rubra",
114 | "Litsea Glutinosa",
115 | "Lonicera dasystyla",
116 | "Lpomoea sp",
117 | "Maesa",
118 | "Mallotus barbatus",
119 | "Mangifera",
120 | "Melastoma malabathricum",
121 | "Mentha Spicata",
122 | "Microcos tomentosa",
123 | "Micromelum falcatum",
124 | "Millettia pulchra",
125 | "Mimosa pudica",
126 | "Morinda citrifolia",
127 | "Moringa oleifera",
128 | "Morus alba",
129 | "Mussaenda philippica",
130 | "Nelumbo nucifera",
131 | "Ocimum basilicum",
132 | "Ocimum gratissimum",
133 | "Ocimum sanctum",
134 | "Oenanthe javanica",
135 | "Ophiopogon japonicus",
136 | "Paederia lanuginosa",
137 | "Pandanus amaryllifolius",
138 | "Pandanus sp",
139 | "Pandanus tectorius",
140 | "Parameria Laevigata",
141 | "Passiflora foetida",
142 | "Pereskia Sacharosa",
143 | "Persicaria odorata",
144 | "Phlogacanthus turgidus",
145 | "Phrynium placentarium",
146 | "Phyllanthus Reticulatus Poir",
147 | "Piper betle",
148 | "Piper sarmentosum",
149 | "Plantago",
150 | "Platycladus orientalis",
151 | "Plectranthus amboinicus",
152 | "Pluchea pteropoda Hemsl",
153 | "Plukenetia volubilis",
154 | "Plumbago indica",
155 | "Plumeria rubra",
156 | "Polyginum cuspidatum",
157 | "Polyscias fruticosa",
158 | "Polyscias guilfoylei",
159 | "Polyscias scutellaria",
160 | "Pouzolzia zeylanica",
161 | "Premna serratifolia",
162 | "Pseuderanthemum latifolium",
163 | "Psidium guajava",
164 | "Psychotria reevesii Wall",
165 | "Psychotria rubra",
166 | "Quisqualis indica",
167 | "Rauvolfia",
168 | "Rauvolfia tetraphylla",
169 | "Rhinacanthus nasutus",
170 | "Rhodomyrtus tomentosa",
171 | "Ruellia tuberosa",
172 | "Sanseviera canaliculata Carr",
173 | "Sansevieria hyacinthoides",
174 | "Sarcandra glabra",
175 | "Sauropus androgynus",
176 | "Schefflera heptaphylla",
177 | "Schefflera venulosa",
178 | "Senna alata",
179 | "Sida acuta Burm",
180 | "Solanum Mammosum",
181 | "Solanum torvum",
182 | "Spilanthes acmella",
183 | "Spondias dulcis",
184 | "Stachytarpheta jamaicensis",
185 | "Stephania dielsiana",
186 | "Stereospermum chelonoides",
187 | "Streptocaulon juventas",
188 | "Syzygium nervosum",
189 | "Tabernaemontana divaricata",
190 | "Tacca subflabellata",
191 | "Tamarindus indica",
192 | "Terminalia catappa",
193 | "Tradescantia discolor",
194 | "Trichanthera gigantea",
195 | "Vernonia amygdalina",
196 | "Vitex negundo",
197 | "Xanthium strumarium",
198 | "Zanthoxylum avicennae",
199 | "Zingiber officinale",
200 | "Ziziphus mauritiana",
201 | "helicteres hirsuta",
202 | ];
--------------------------------------------------------------------------------
/frontend/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | body {
6 | margin: 0;
7 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
8 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
9 | sans-serif;
10 | -webkit-font-smoothing: antialiased;
11 | -moz-osx-font-smoothing: grayscale;
12 | background-image: url("./Assets/background1.jpeg");
13 | background-size: cover;
14 | }
15 |
16 | code {
17 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
18 | monospace;
19 | }
20 |
21 | /*------------------------------------------------------------------------*/
22 | /*-------------------Home Page--------------------------------------------*/
23 | .Home {
24 | padding: 60px;
25 | display: flex;
26 | justify-content: center;
27 | align-items: center;
28 |
29 | }
30 |
31 | .content {
32 | border: 35px solid #D9D9D9;
33 | border-radius: 1.5%;
34 |
35 | background-color: #D1FFBD;
36 | box-shadow: -10px 5px 10px black;
37 | box-shadow: inset;
38 | width: 1000px;
39 | height: auto;
40 | padding: 20px;
41 | }
42 |
43 | .title h1 {
44 | font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
45 | background-image: url("https://rare-gallery.com/uploads/posts/582448-banana-leaf.jpg");
46 | background-size: cover;
47 | padding: 20px;
48 | font-size: 70px;
49 | border-radius: 1.5%;
50 |
51 | }
52 |
53 | .content img {
54 | width: 930px;
55 | height: 350px;
56 |
57 | }
58 |
59 | .para {
60 | font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
61 | font-size: larger;
62 | padding: 20px 20px 0px;
63 | }
64 |
65 | .foot {
66 | padding: 0px 50px;
67 | display: flex;
68 | justify-content: space-between;
69 | align-items: center;
70 | }
71 |
72 | .foot img {
73 | margin-left: 150px;
74 | }
--------------------------------------------------------------------------------
/frontend/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom/client";
3 | import "./index.css";
4 | import App from "./App";
5 | import reportWebVitals from "./reportWebVitals";
6 | import { BrowserRouter } from "react-router-dom";
7 |
8 | const root = ReactDOM.createRoot(document.getElementById("root"));
9 | root.render(
10 |
11 |
12 |
13 | );
14 |
15 | // If you want to start measuring performance in your app, pass a function
16 | // to log results (for example: reportWebVitals(console.log))
17 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
18 | reportWebVitals();
19 |
--------------------------------------------------------------------------------
/frontend/src/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/src/pages/Dragdrop.js:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from "react";
2 | import { useDropzone } from "react-dropzone";
3 | import upload from "../Assets/upload_image.png";
4 | import "../style/dragDropStyle.css";
5 | import Footer from "./footer";
6 | import { useNavigate } from "react-router-dom";
7 | import axios from "axios";
8 | import * as tf from "@tensorflow/tfjs";
9 | import { plantClasses } from "../data/plantClasses";
10 | // import "../Assets/model/model.json";
11 |
12 | // Function to load an image and convert it to a tensor
13 | async function loadImage(file) {
14 | return new Promise((resolve) => {
15 | const reader = new FileReader();
16 | reader.onload = (event) => {
17 | const img = new Image();
18 | img.onload = () => resolve(tf.browser.fromPixels(img));
19 | img.src = event.target.result;
20 | };
21 | reader.readAsDataURL(file);
22 | });
23 | }
24 |
25 | function preprocessImage(image) {
26 | const resizedImage = image.resizeBilinear([128, 128]); // Adjust size if necessary
27 | return resizedImage;
28 | }
29 |
30 |
31 | const thumbsContainer = {
32 | display: "flex",
33 | flexDirection: "row",
34 | flexWrap: "wrap",
35 | };
36 |
37 | const thumb = {
38 | display: "inline-flex",
39 | borderRadius: 2,
40 | border: "1px solid #eaeaea",
41 | marginBottom: 8,
42 | marginRight: 8,
43 | // marginLeft: '100px',
44 | width: "100px",
45 | height: "100px",
46 | padding: "10px",
47 | boxSizing: "border-box",
48 | };
49 |
50 | const thumbInner = {
51 | display: "flex",
52 | minWidth: 0,
53 | overflow: "hidden",
54 | };
55 |
56 | const img = {
57 | display: "block",
58 | width: "auto",
59 | height: "100%",
60 | };
61 |
62 | const container = {
63 | width: "900px",
64 | marginTop: "50px",
65 | marginBottom: "50px",
66 | };
67 |
68 | const box = {
69 | border: "1px solid lightblue",
70 | };
71 |
72 | function Dragdrop(props) {
73 | const [files, setFiles] = useState([]);
74 | const [modelLoading, setModelLoading] = useState(true);
75 | const [model, setModel] = useState(null);
76 | const navigate = useNavigate();
77 | let modelLoad;
78 | tf.loadGraphModel("model/model.json").then(function (model) {
79 | window.model = model;
80 | setModelLoading(false);
81 | });
82 |
83 | const getPlantName = async (files) => {
84 | try {
85 | console.log(files);
86 | const image = await loadImage(files[0]);
87 | let tensor = preprocessImage(image);
88 | tensor = tensor.expandDims(0);
89 | console.log(tensor);
90 | console.log(window.model);
91 | const predictions = await window.model.predict(tensor).data();
92 | // console.log(predictions);
93 | let index = predictions.indexOf(Math.max(...predictions));
94 | // console.log(plantClasses[index]);
95 | navigate(`/result/${plantClasses[index]}`);
96 | } catch (error) {
97 | console.log(error);
98 | }
99 | };
100 | const { getRootProps, getInputProps } = useDropzone({
101 | accept: {
102 | "image/*": [],
103 | },
104 | onDrop: (acceptedFiles) => {
105 | // setFiles(
106 | // acceptedFiles.map((file) =>
107 | // Object.assign(file, {
108 | // preview: URL.createObjectURL(file),
109 | // })
110 | // )
111 | // );
112 | getPlantName(acceptedFiles);
113 | },
114 | });
115 |
116 | const thumbs = files.map((file) => (
117 |
118 |
119 |

{
124 | // URL.revokeObjectURL(file.preview);
125 | // }}
126 | alt={file.name}
127 | />
128 |
129 |
130 | ));
131 |
132 | return (
133 | <>
134 | {!modelLoading && (
135 | <>
136 |
137 |
138 |
139 |

140 |
141 | Click here to add files
142 | or
143 |
Drag & Drop files here
144 |
145 |
148 |
149 |
150 |
151 |
152 | >
153 | )}
154 | >
155 | //
156 | );
157 | }
158 |
159 | export default Dragdrop;
160 |
--------------------------------------------------------------------------------
/frontend/src/pages/Feedback.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import { Container, Paper, Button } from "@mantine/core";
3 | import axios from "axios";
4 | import { useNavigate } from "react-router-dom";
5 |
6 | const outerContainerStyles = {
7 | minHeight: "60vh",
8 | display: "flex",
9 | alignItems: "center",
10 | justifyContent: "center",
11 | flexDirection: "column",
12 | marginBottom: "30px",
13 | marginTop: "30px",
14 | };
15 |
16 | const innerContainerStyles = {
17 | backgroundColor: "rgb(215, 215, 217)",
18 | height: "50vh",
19 | width: "50vw",
20 | display: "flex",
21 | alignItems: "center",
22 | justifyContent: "center",
23 | flexDirection: "column",
24 | top: "50",
25 | border: "2px solid grey",
26 | borderRadius: "10px",
27 | };
28 | const subContainerStyles = {
29 | backgroundColor: "rgb(215, 215, 217)",
30 | height: "100%",
31 | width: "100%",
32 | margin: "16px 0",
33 | padding: "16px",
34 | display: "flex",
35 | flexDirection: "column",
36 | alignItems: "center",
37 | paddingLeft: "3px",
38 | borderRadius: "10px",
39 | };
40 | const buttonStyle = {
41 | backgroundColor: "white",
42 | borderRadius: "50%",
43 | margin: "5px",
44 | width: "60px",
45 | height: "50px",
46 | display: "flex",
47 | alignItems: "center",
48 | justifyContent: "center",
49 | fontSize: "27px",
50 | };
51 |
52 | const textAreaStyle = {
53 | width: "70%",
54 | minHeight: "150px",
55 | maxHeight: "150px",
56 | padding: "8px",
57 | fontSize: "16px",
58 | border: "1px solid black",
59 | borderRadius: "10px",
60 | };
61 |
62 | function Feedback() {
63 | const [mood, setMood] = useState("");
64 | const [feedback, setFeedback] = useState("");
65 |
66 | const handleMoodClick = (selectedMood) => {
67 | setMood(selectedMood);
68 | };
69 | const handleFeedbackChange = (e) => {
70 | setFeedback(e.target.value);
71 | };
72 | const navigate = useNavigate();
73 | const handleSubmit = async (e) => {
74 | e.preventDefault();
75 | try {
76 | const { data } = await axios.post("/api/v1/plant/feedback", {
77 | score: mood,
78 | description: feedback,
79 | });
80 | navigate("/");
81 | } catch (error) {
82 | console.log(error);
83 | }
84 | };
85 |
86 | return (
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 | Rate us Here:
95 |
96 |
97 |
98 |
106 |
114 |
122 |
130 |
138 |
139 |
140 |
141 |
149 |
156 |
157 |
158 |
159 |
160 |
161 | );
162 | }
163 |
164 | export default Feedback;
165 |
--------------------------------------------------------------------------------
/frontend/src/pages/FeedbackPage.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Feedback from "./Feedback";
3 | import Footer from "./footer";
4 |
5 | const FeedbackPage = () => {
6 | return (
7 | <>
8 |
9 |
10 | >
11 | );
12 | };
13 |
14 | export default FeedbackPage;
15 |
--------------------------------------------------------------------------------
/frontend/src/pages/Home.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import logo from "../Assets/Logo.png";
3 | import Typewriter from "./Typewriter";
4 | import { useNavigate } from "react-router-dom";
5 |
6 | const Home = () => {
7 | const navigate = useNavigate();
8 | const handleClick = () => {
9 | navigate("/dragdrop");
10 | };
11 | const btn = {
12 | width: "100px",
13 | height: "50px",
14 | fontWeight: "bolder",
15 | };
16 | return (
17 |
18 |
19 |
20 |
28 | Medicinal Plant Detection: The Future of Herbal Medicine
29 |
30 |
31 |
42 |
43 |
51 |

52 |
53 |
54 |
55 | );
56 | };
57 |
58 | export default Home;
59 |
--------------------------------------------------------------------------------
/frontend/src/pages/Result.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from "react";
2 | import Feedback from "./Feedback";
3 | import Footer from "./footer";
4 | import axios from "axios";
5 | import { useNavigate, useParams } from "react-router-dom";
6 | import "../style/responseModel.css";
7 |
8 | const Result = () => {
9 | const params = useParams();
10 | const navigate = useNavigate();
11 | const [scientificName, setscientificName] = useState("");
12 | const [localName, setLocalName] = useState("");
13 | const [description, setDescription] = useState("");
14 | const [photo, setPhoto] = useState("");
15 |
16 | const getSingleProduct = async () => {
17 | try {
18 | console.log(params.slug);
19 | const { data } = await axios.get(`/api/v1/plant/${params.slug}`);
20 | setscientificName(data.plant.scientificName);
21 | setLocalName(data.plant.localName);
22 | setDescription(data.plant.features);
23 | setPhoto(data.plant.photo);
24 | } catch (error) {
25 | console.log(error);
26 | }
27 | };
28 | const handleClick = () => {
29 | try {
30 | navigate("/feedback");
31 | } catch (error) {
32 | console.log(error);
33 | }
34 | };
35 |
36 | useEffect(() => {
37 | getSingleProduct();
38 | //eslint-disable-next-line
39 | }, []);
40 |
41 | const features = description.split(",");
42 |
43 | const arrayDataItems = features.map((feature) => (
44 | {feature}
45 | ));
46 |
47 | return (
48 | <>
49 |
50 |
{localName}
51 |
52 |
53 |
54 | -
55 | Scientific Name:
56 | {scientificName}
57 |
58 | -
59 | Local Name:
60 | {localName}
61 |
62 | -
63 | Medicinal Features:
64 |
65 |
66 |
67 |
68 |
69 |
70 |

71 |
72 |
73 |
74 |
75 |
76 |
83 |
84 |
85 |
86 | >
87 | );
88 | };
89 |
90 | export default Result;
91 |
--------------------------------------------------------------------------------
/frontend/src/pages/Typewriter.js:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from 'react';
2 |
3 | const Typewriter = ({text, delay}) => {
4 | const [currText, setCurrText] = useState("");
5 | const [currIndex, setCurrIndex] = useState(0);
6 |
7 | useEffect(()=>{
8 | if(currIndex < text.length){
9 | const timeout = setTimeout(()=>{
10 | setCurrText(prevText => prevText + text[currIndex]);
11 | setCurrIndex(prevIndex => prevIndex + 1);
12 | }, delay);
13 | return () => clearTimeout(timeout);
14 | }
15 | }, [currIndex, delay, text]);
16 |
17 | return (
18 | {currText}
19 | );
20 | }
21 |
22 | export default Typewriter;
--------------------------------------------------------------------------------
/frontend/src/pages/footer.js:
--------------------------------------------------------------------------------
1 | import {
2 | faFacebook,
3 | faInstagram,
4 | faTwitter,
5 | } from "@fortawesome/free-brands-svg-icons";
6 | import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
7 | import { Button, Container, Group, Paper, Text } from "@mantine/core";
8 | import "bootstrap/dist/css/bootstrap.min.css";
9 | import React from "react";
10 | import logo from "../Assets/Logo.png";
11 | import { Link } from "react-router-dom";
12 |
13 | const outerContainerStyles = {
14 | minHeight: "40vh",
15 | backgroundColor: "#086729",
16 | display: "flex",
17 | alignItems: "center",
18 | justifyContent: "center",
19 | flexDirection: "column",
20 | };
21 | const iconStyle = {
22 | display: "inline-block",
23 | verticalAlign: "middle",
24 | };
25 | const box = {
26 | width: "120px",
27 | height: "70px",
28 | };
29 | const ulStyle = {
30 | listStyle: "none",
31 | display: "flex",
32 | padding: 0,
33 | justifyContent: "center",
34 | };
35 |
36 | const liStyle = {
37 | marginRight: "20px",
38 | display: "inline-block",
39 | };
40 |
41 | const linkStyle = {
42 | textDecoration: "none",
43 | color: "white",
44 | fontWeight: "bold",
45 | };
46 | const Footer = () => {
47 | return (
48 |
49 |
50 |
51 |
52 |
62 |
72 |
82 |
83 |
84 |
85 |
86 |
87 | Copyright © 2023
88 |
89 |
90 |
109 |
110 |
111 |
112 |
113 |
114 |
115 | );
116 | };
117 |
118 | export default Footer;
119 |
--------------------------------------------------------------------------------
/frontend/src/reportWebVitals.js:
--------------------------------------------------------------------------------
1 | const reportWebVitals = onPerfEntry => {
2 | if (onPerfEntry && onPerfEntry instanceof Function) {
3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
4 | getCLS(onPerfEntry);
5 | getFID(onPerfEntry);
6 | getFCP(onPerfEntry);
7 | getLCP(onPerfEntry);
8 | getTTFB(onPerfEntry);
9 | });
10 | }
11 | };
12 |
13 | export default reportWebVitals;
14 |
--------------------------------------------------------------------------------
/frontend/src/routes/MLRouting.js:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from "react";
2 | // import { useAuth } from "../../context/auth";
3 | import { Outlet } from "react-router-dom";
4 | import axios from "axios";
5 | import Spinner from "../spinner.js";
6 |
7 | export default function AdminRoute() {
8 | const [ok, setOk] = useState(false);
9 | // const [auth, setAuth] = useAuth();
10 |
11 | useEffect(() => {
12 | const authCheck = async () => {
13 | const res = await axios.get("/api/v1/plant/dragdrop");
14 | if (res.data.ok) {
15 | setOk(true);
16 | } else {
17 | setOk(false);
18 | }
19 | };
20 | if (auth?.token) authCheck();
21 | }, [auth?.token]);
22 |
23 | return ok ? : ;
24 | }
25 |
--------------------------------------------------------------------------------
/frontend/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom';
6 |
--------------------------------------------------------------------------------
/frontend/src/spinner.js:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from "react";
2 | import { useNavigate, useLocation } from "react-router-dom";
3 | const Spinner = ({ path = "login" }) => {
4 | const [count, setCount] = useState(3);
5 | const navigate = useNavigate();
6 | const location = useLocation();
7 |
8 | useEffect(() => {
9 | const interval = setInterval(() => {
10 | setCount((prevValue) => --prevValue);
11 | }, 1000);
12 | count === 0 &&
13 | navigate(`/${path}`, {
14 | state: location.pathname,
15 | });
16 | return () => clearInterval(interval);
17 | }, [count, navigate, location, path]);
18 | return (
19 | <>
20 |
24 |
redirecting to you in {count} second
25 |
26 | Loading...
27 |
28 |
29 | >
30 | );
31 | };
32 |
33 | export default Spinner;
34 |
--------------------------------------------------------------------------------
/frontend/src/style/dragDropStyle.css:
--------------------------------------------------------------------------------
1 | *{
2 | padding:0;
3 | margin:0;
4 | box-sizing:border-box;
5 |
6 | }
7 |
8 | section{
9 | font-family: 'Montderrat', sans-serif;
10 | background-color: #f7f7f7;
11 | font-weight: 400;
12 | line-height: 1.5;
13 | display: flex;
14 | justify-content: center;
15 | padding-top: 100px;
16 | height: 80vh;
17 | }
18 |
19 | .box{
20 | display: flex;
21 | flex-direction: column;
22 | /* min-height: 100vh; */
23 | align-items: center;
24 | justify-content: center;
25 | width: 600px;
26 |
27 | }
28 |
29 | .dropzone{
30 | display: flex;
31 | flex-direction: column;
32 | justify-content: center;
33 | align-items: center;
34 | height: 360px;
35 | border: 4px dashed rgb(117,112,112);
36 | padding: 20px;
37 | width: 100%; ;
38 | /* position: absolute; */
39 | }
40 |
41 | .dropzone h2{
42 | color: rgb(117,112,112);
43 | text-align: center;
44 | margin-bottom: 30px;
45 | padding: 20px 20px;
46 | }
47 |
48 | button{
49 | padding: 12px;
50 | font-size: medium;
51 | margin-top: 30px;
52 | }
53 |
54 |
55 | @media screen and (max-width: 690px){
56 | .box{
57 | width: 300px;
58 | }
59 | .dropzone{
60 | padding: 10px;
61 | height: 300px;
62 | }
63 | .dropzone h1{
64 | font-size: 18px;
65 | }
66 | button{
67 | padding: 10px;
68 | font-size: smaller;
69 | margin-top: 25px;
70 | }
71 |
72 | }
--------------------------------------------------------------------------------
/frontend/src/style/footerStyle.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hacktoberfest-codex/Medicinal-Plant-Detection/7a06717567feb8e9dc577fa606383d9323552dc3/frontend/src/style/footerStyle.js
--------------------------------------------------------------------------------
/frontend/src/style/responseModel.css:
--------------------------------------------------------------------------------
1 | .response-block{
2 | margin:50px auto 10px;
3 | background-color: #d1ffdb;
4 | color: black;
5 | height: 40vh;
6 | width: 60vw;
7 | border: 15px solid #d9d9d9;
8 | border-radius: 10px;
9 | }
10 |
11 | .response-block h1{
12 | position: relative;
13 | top: 10px;
14 | padding: 0px auto;
15 | text-align: center;
16 |
17 | }
18 |
19 | .response-content{
20 | display: flex;
21 | align-items: center;
22 | flex-direction: row;
23 | justify-content: center;
24 | align-items: center;
25 | gap: 5rem;
26 | margin-top: 30px;
27 | }
28 |
29 | .img{
30 | width: 150px;
31 | height: 150px;
32 | }
33 |
34 | .img img{
35 | width: 150px;
36 | height: 150px;
37 | }
--------------------------------------------------------------------------------
/frontend/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | "./src/**/*.{js,jsx,ts,tsx}",
5 | ],
6 | theme: {
7 | extend: {},
8 | },
9 | plugins: [],
10 | }
--------------------------------------------------------------------------------
/models/feedbackModel.js:
--------------------------------------------------------------------------------
1 | import mongoose from "mongoose";
2 |
3 | const feedbackSchema = new mongoose.Schema(
4 | {
5 | score: {
6 | type: String,
7 | },
8 | description: {
9 | type: String,
10 | },
11 | },
12 | { timestamps: true }
13 | );
14 |
15 | export default mongoose.model("feed", feedbackSchema);
16 |
--------------------------------------------------------------------------------
/models/plantModel.js:
--------------------------------------------------------------------------------
1 | import mongoose from "mongoose";
2 |
3 | const plantSchema = new mongoose.Schema(
4 | {
5 | scientificName: {
6 | type: String,
7 | trim: true,
8 | unique: true,
9 | },
10 | localName: {
11 | type: String,
12 | trim: true,
13 | },
14 | features: {
15 | type: String,
16 | },
17 | photo: {
18 | type: String,
19 | },
20 | },
21 | { timestamps: true }
22 | );
23 |
24 | export default mongoose.model("plantFeatures", plantSchema);
25 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Med-Plants",
3 | "version": "1.0.0",
4 | "description": "Hackaton Project Identification of medical plants through ML Model.",
5 | "main": "index.js",
6 | "type": "module",
7 | "scripts": {
8 | "start": "nodemon server.js",
9 | "frontend": "npm start --prefix ./frontend",
10 | "dev": "concurrently \"npm run start\" \"npm run frontend\""
11 | },
12 | "author": "TEAM-43",
13 | "license": "ISC",
14 | "dependencies": {
15 | "@fortawesome/free-brands-svg-icons": "^6.4.2",
16 | "@fortawesome/react-fontawesome": "^0.2.0",
17 | "@mantine/core": "^6.0.20",
18 | "@tensorflow/tfjs": "^4.11.0",
19 | "bootstrap": "^5.3.2",
20 | "colors": "^1.4.0",
21 | "concurrently": "^8.2.1",
22 | "cors": "^2.8.5",
23 | "csvtojson": "^2.0.10",
24 | "dotenv": "^16.3.1",
25 | "express": "^4.18.2",
26 | "mongoose": "^7.5.2",
27 | "morgan": "^1.10.0",
28 | "multer": "^1.4.5-lts.1",
29 | "nodemon": "^3.0.1",
30 | "react-dropzone": "^14.2.3"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/public/uploads/plant-features.csv:
--------------------------------------------------------------------------------
1 | scientificName,localName,features,photo
2 | Abelmoschus sagittifolius,Drumstick,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/b/b0/Abelmoschus_sagittifolius_00755.JPG
3 | Abrus precatorius,Rosary pea,"Anti-cancer, anti-diabetic",https://m.media-amazon.com/images/I/71JLfmyrW3L.jpg
4 | Abutilon indicum,Indian mallow,"Anti-diarrheal, laxative",https://images.meesho.com/images/products/211303478/gnrzi_512.webp
5 | Acanthus integrifolius,Spiny acanthus,"Anti-inflammatory, wound healing",https://anchanhkienkhang.com/wp-content/uploads/2020/07/ac-o.jpg
6 | Acorus tatarinowii,Sweet flag,"Antispasmodic, diuretic",https://img.motorprotein.de/img/species_pict/large/Acorus_tatarinowii/
7 | Agave americana,American aloe,"Anti-inflammatory, laxative",https://i.etsystatic.com/14792178/r/il/11e176/2659465647/il_fullxfull.2659465647_bu7t.jpg
8 | Ageratum conyzoides,Whiteweed,"Anti-bacterial, anti-fungal",https://upload.wikimedia.org/wikipedia/commons/b/ba/Ageratum_conyzoides_1.jpg
9 | Allium ramosum,Chinese chive,"Anti-hypertensive, anti-cholesterol",https://netbutik.fuglebjerggaard.dk/wp-content/uploads/2014/03/585296_c1b4b915.jpg
10 | Alocasia macrorrhizos,Taro,"Anti-inflammatory, laxative",https://gachwala.in/wp-content/uploads/2022/06/51VMUYO4wiL.jpg
11 | Aloe vera,Aloe,"Anti-inflammatory, wound healing",https://5.imimg.com/data5/OU/HK/MY-13326410/pure-aloe-vera-plant.jpg
12 | Alpinia officinarum,Galangal,"Anti-spasmodic, carminative",https://d2seqvvyy3b8p2.cloudfront.net/145c19c38bb923bc3b82616c0647e099.jpg
13 | Amomum longiligulare,Long-lipped cardamom,"Anti-inflammatory, expectorant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRT1kE-1bVL29nzGNtLDqyHFx0INNAipf3m5gIUyFulxkTDKzDzU12WK2Wje4EOrmmAcfI&usqp=CAU
14 | Ampelopsis cantoniensis,Five-angled grape,"Anti-inflammatory, antioxidant",https://www.zhiwutong.com/tu/photo/4/04021026124.JPG
15 | Andrographis paniculata,Andrographis,"Anti-bacterial, anti-viral",https://4.imimg.com/data4/SE/WP/MY-5088968/andrographis-panniculata-500x500.jpg
16 | Angelica dahurica,Chinese angelica,"Anti-inflammatory, analgesic",https://www.seedscape.net.au/wp-content/uploads/2023/01/ANGELICA-DAHURICA-BLBP-02.jpg
17 | Ardisia sylvestris,Ceylon gooseberry,"Anti-bacterial, anti-fungal",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2zmgWW_BuPl1knFnU6vb12eU-dVBHFADapAhKi81e8TH_qj8IEzL2uoWbcrIS0G5rpxQ&usqp=CAU
18 | Artemisia vulgaris,Mugwort,"Anti-inflammatory, antioxidant",https://i.redd.it/6jd8mb1ol3011.jpg
19 | Artocarpus altilis,Breadfruit,"Anti-diabetic, anti-cancer","https://m.media-amazon.com/images/I/515nc3lfFyL._AC_UF1000,1000_QL80_.jpg"
20 | Artocarpus heterophyllus,Jackfruit,"Anti-diabetic, anti-inflammatory",https://cdn11.bigcommerce.com/s-5mvrqhbm/images/stencil/1280x1280/products/733/210467/artocarpus-heterophyllus5__93499.1694021445.jpg?c=2
21 | Artocarpus lakoocha,Breadnut,"Anti-diabetic, anti-inflammatory",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTEWe529MyvVoS5Az2EdsOFYz9zR-56cTvmmWSwlDiL1BZFyHA6Ab9U3iA6iM9Ai3lrD2U&usqp=CAU
22 | Asparagus cochinchinensis,Vietnamese asparagus,"Diuretic, laxative",https://media.plantsnap.com/images/species/b195a66462e9d261fea1f6916e855afb/chinese_asparagus__asparagus_cochinchinensis__4_2972.jpeg
23 | Asparagus officinalis,Asparagus,"Diuretic, antioxidant",https://www.westend61.de/images/0000384765pw/row-of-green-asparagus-asparagus-officinalis-lying-on-dark-wood-LVF001447.jpg
24 | Averrhoa carambola,Starfruit,"Antioxidant, anti-inflammatory",https://cdn.britannica.com/18/234018-050-295531DC/carambola-hanging-on-a-tree.jpg
25 | Baccaurea sp.,Wild mangosteen,"Anti-inflammatory, antioxidant",https://veliyathgarden.com/cdn/shop/products/sasaa.jpg?v=1661586366
26 | Barleria lupulina,Indian honeysuckle,"Anti-inflammatory, wound healing",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRuscmw5TuacBEOnVo4p-8jM78T2d7v7dtyPw&usqp=CAU
27 | Bengal arum,Arum colocasia,"Anti-inflammatory, diuretic",https://lh5.ggpht.com/ZMBZIO5HVgk9Hq9bOvNhIv8VV5SxT53ECBO9_G_Tpa8oBHsdR9whpBkZpgu-W0qVetzvQIZW_st3zh8Z0z8h=s580
28 | Berchemia lineata,Chinese privet,"Anti-diabetic, anti-cancer",https://eatwildhk.files.wordpress.com/2011/01/supplejack.jpeg
29 | Bidens pilosa,Beggar's ticks,"Anti-inflammatory, anti-cancer",https://portal.wiktrop.org/files-api/api/get/crop/img//Bidens%20pilosa/bidpi_20070719_183737.jpg?h=500
30 | Bischofia trifoliata,Tree of life,"Anti-diabetic, anti-inflammatory",https://upload.wikimedia.org/wikipedia/commons/6/6a/Bischofia_javanica_flowering.jpg
31 | Blackberry lily,Himalayan blackberry,"Anti-inflammatory, antioxidant",https://i.etsystatic.com/33672878/r/il/d04b7f/4617047547/il_fullxfull.4617047547_ozyf.jpg
32 | Blumea balsamifera,Balsam flower,"Anti-inflammatory, wound healing",https://indiabiodiversity.org/files-api/api/get/raw/observations//3921104c-9a8e-4d25-b391-408a23c515c7/345.jpg
33 | Boehmeria nivea,Paper mulberry,"Anti-inflammatory, diuretic",https://u.iplantz.com/81/Boehmeria%20nivea-0693.5469.jpg
34 | Breynia vitis,Sourleaf,"Anti-inflammatory, laxative",https://indiabiodiversity.org/files-api/api/get/raw/observations//d3b8a662-edb0-4710-8835-93f3ec71eb76/279.jpg
35 | Caesalpinia sappan,Sappanwood,"Anti-inflammatory, wound healing",https://m.media-amazon.com/images/I/71peja2N8QL.jpg
36 | Callerya speciosa,Butterfly pea,"Anti-diabetic, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSx7xuswZLKta1holnAJvWi-GJjpmCEfZ1gJwuYKyYb9d_JKylm16w6oxzgyvygLIg4YoU&usqp=CAU
37 | Callisia fragrans,Mexican bamboo,"Anti-inflammatory, diuretic",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTAwTegf4ohz2ZWMlSYtcc78uoK6Scgxi1ru5d50mUYFQglHi5gD9wsf8hsolMaLJ8ybOA&usqp=CAU
38 | Calophyllum inophyllum,Tamanu oil tree,"Anti-inflammatory, wound healing",https://indiabiodiversity.org/files-api/api/get/raw/observations//c6f6ba0e-5c6b-411f-950f-e56092436584/172.JPG
39 | Calotropis gigantea,Crown flower,"Anti-inflammatory, anti-cancer",https://plantingman.com/wp-content/uploads/2018/02/Calotropis-gigantea-House-Plant.jpg
40 | Camellia chrysantha,Golden camellia,"Anti-inflammatory, antioxidant",https://www.shutterstock.com/image-photo/yellow-camellia-chrysantha-flowers-buds-260nw-1585739554.jpg
41 | Caprifoliaceae,Honeysuckle family,"Anti-inflammatory, sedative",https://cdn.britannica.com/86/124186-004-E712B641/Orange-honeysuckle.jpg
42 | Capsicum annuum,Chili pepper,"Anti-inflammatory, antioxidant",https://storage.googleapis.com/powop-assets/kew_profiles/KPPCONT_054821_fullsize.jpg
43 | Carica papaya,Papaya,"Digestive aid, wound healing",https://paudhshala.com/pub/media/catalog/product/cache/6267e56aaf40fbea9d3c10a535c02bf0/c/a/carica-papaya-seeds.jpg
44 | Catharanthus roseus,Madagascar periwinkle,"Anti-cancer, anti-fungal",https://upload.wikimedia.org/wikipedia/commons/f/fe/Catharanthus_July_2013-1.jpg
45 | Celastrus hindsii,Climbing bittersweet,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/0/0b/Celastrus_scandens.jpg
46 | Celosia argentea,Cockscomb,"Anti-inflammatory, antioxidant",https://images.ctfassets.net/zma7thmmcinb/766PpVAasLVUar9hg47FdK/e9c62f65b4f06532c76b28f0c314ff6e/growing-celosia-Intenz-classic-wheat-celosia-gallery.jpg
47 | Centella asiatica,Gotu kola,"Anti-inflammatory, wound healing","https://m.media-amazon.com/images/I/61ikTSNtbnL._AC_UF1000,1000_QL80_.jpg"
48 | Citrus aurantifolia,Lime,"Digestive aid, antioxidant",https://globinmed.com/wp-content/uploads/2011/03/1_LimauNipis.jpg
49 | Citrus hystrix,Kaffir lime,"Digestive aid, antioxidant",https://veliyathgarden.com/cdn/shop/files/kaffir-lime_1445x.jpg?v=1686055082
50 | Clausena indica,Wood apple,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRvyV7Z5Rhy9Rr5czl3n1rQuxqVGQQUwQPAeQ&usqp=CAU
51 | Cleistocalyx operculatus,Pink shell ginger,"Anti-inflammatory, antioxidant",https://www.fruitipedia.com/wp-content/uploads/2018/11/Ma-kiang-fruits.jpg
52 | Clerodendrum inerme,Traveller's joy,"Anti-inflammatory, wound healing",https://apps.lucidcentral.org/rainforest/images/entities/clerodendrum_inerme/1791048.jpg
53 | Clinacanthus nutans,Spider plant,"Anti-inflammatory, antioxidant",https://wcc.edu.in/wp-content/uploads/2022/05/4-1.jpg
54 | Glycyrrhiza uralensis Fisch.,Licorice,"Anti-inflammatory, anti-ulcer",https://d2seqvvyy3b8p2.cloudfront.net/878c09a357547af74c111762347f50c0.jpg
55 | Coix lacryma-jobi,Job's tears,"Anti-diabetic, diuretic",https://d2seqvvyy3b8p2.cloudfront.net/20d4446820d76679bc138f34704b7925.jpg
56 | Cordyline fruticosa,Ti plant,"Anti-inflammatory, antioxidant",https://www.plantvine.com/plants/Cordyline-fruticosa-_Florica_-1.jpg
57 | Costus speciosus,Kansui,"Anti-inflammatory, diuretic",https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Cheilocostus_speciosus.jpg/1200px-Cheilocostus_speciosus.jpg
58 | Crescentia cujete L.,Calabash tree,"Anti-inflammatory, laxative",https://d2seqvvyy3b8p2.cloudfront.net/23724e23ed9b618278acc5b0d2a66959.jpg
59 | Crinum asiaticum,Crinum lily,"Anti-inflammatory, wound healing",https://tropical.theferns.info/plantimages/sized/4/8/4806356eddb4b8c447ca5752d212e9a3a57c2173_300px.jpg
60 | Crinum latifolium,Madagascar lily,"Anti-inflammatory, wound healing",https://content.eol.org/data/media/59/d2/b4/18.1aad61c360ea8e7cd60aa7d3287016e2.jpg
61 | Croton oblongifolius,Croton,"Anti-inflammatory, laxative",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRENvY8kLHmVN28H1uW31sDU1boagQKQ5Xul-TgB_x-KPlchn8I202tAO53B5Tv0vqbVRU&usqp=CAU
62 | Croton tonkinensis,Tonkin croton,"Anti-inflammatory, laxative",https://www.dongtayy.com/upload/quy12018/kho-sam-bac-bo.jpg
63 | Curculigo gracilis,White turmeric,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRjyRq88VM-wzyXUbDX8fzU3_eqNQW0qgTA2pfMjGk55r2TsZ1jrYyfn0kRcM_z45U02Fk&usqp=CAU
64 | Curculigo orchioides,Black turmeric,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRan9twY2y0ovF8QV4-drd1YJEBA2nLH3WMP1iG6uz_cNHAJJdBwBQY2HPZmKczpcXZhSU&usqp=CAU
65 | Cymbopogon,Lemongrass,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQHOxUQE7J3UzRU7fyEKYxL_KlEKxfPkNELxA&usqp=CAU
66 | Datura metel,Thorn apple,"Antispasmodic, sedative","https://m.media-amazon.com/images/I/51k8+1kZeAL._AC_UF1000,1000_QL80_.jpg"
67 | Derris elliptica,Derris,"Antibacterial, anti-fungal",https://www.shutterstock.com/image-photo/derris-elliptica-tuba-root-round-260nw-1057293431.jpg
68 | Dianella ensifolia,Blue flax lily,"Anti-inflammatory, diuretic",https://tjcnativeplants.files.wordpress.com/2014/05/densifoliafig-3.jpg
69 | Dicliptera chinensis,Chinese water pepper,"Anti-inflammatory, diuretic",https://lh3.googleusercontent.com/-3GCbBZZ9a7E/T4URPEYBc1I/AAAAAAAABDk/iWKQcCSjqM8/s1600/Dicliptera-roxburgiana-Kud-J+%26+K-3.jpg
70 | Dimocarpus longan,Longan,"Anti-aging, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ1ct-ZCfweV62I8iObA_ymY_BB3jNaBj0mZtOGJcUVTgWEAK5ImgU0FnDDCj57FighOMQ&usqp=CAU
71 | Dioscorea persimilis,Wild yam,"Anti-inflammatory, antioxidant",https://lh4.ggpht.com/PdMQ-J-ZHImtAIegTDK05WAvJK1i2HxKE7EsC3Gn3SQyjVkU4l1EkWYsY9t7oILufPuT7zib9rFQEDisMZI=s580
72 | Eichhornia crassipes,Water hyacinth,"Anti-inflammatory, wound healing",https://media.sciencephoto.com/b8/08/14/81/b8081481-800px-wm.jpg
73 | Eleutherine bulbosa,Turmeric bulb,"Anti-inflammatory, antioxidant",https://i.etsystatic.com/25725362/r/il/9428c3/3075761416/il_570xN.3075761416_9h9b.jpg
74 | Eupatorium triplinerve,Thoroughwort,"Anti-inflammatory, antioxidant","https://assets.zyrosite.com/cdn-cgi/image/format=auto,w=600,h=368,fit=crop/AQEQO8099Vf5bJ3N/dsc_0585-A0xo5e3abzUpaj12.JPG"
75 | Euphorbia hirta,Croton tiglium,"Anti-inflammatory, laxative",https://c8.alamy.com/comp/2H93B6P/asthma-plant-chamaesyce-hirta-or-euphorbia-hirta-detail-2H93B6P.jpg
76 | Erythrina variegata,Coral tree,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRjgOoYz-w-A3H8ZKDe9A_Qc5EHifMGPUznpw&usqp=CAU
77 | Euphorbia pulcherrima,Poinsettia,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRfOMJjftK26C1azK_HsmLcjT66ujhb88Z6UQ&usqp=CAU
78 | Eupatorium fortunei,Boneset,"Anti-inflammatory, antioxidant",https://vivaipriola.it/893-home_default/eupatorium-fortunei-fine-line-.jpg
79 | Euphorbia tirucalli,Pencil cactus,"Anti-inflammatory, laxative",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTmofBl4yk908QOaNFzDgv87ewQ5JIXZt1Nhg&usqp=CAU
80 | Euphorbia tithymaloides,Firecracker plant,"Anti-inflammatory, laxative",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRw9RaYDX6DTh_VXpx9hWLoEiZIeJ1L5111XjqQ2WaShawyFNcCV13T9SmqKpDJOVN9dpY&usqp=CAU
81 | Eurycoma longifolia,Tongkat ali,"Anti-aging, antioxidant",https://c8.alamy.com/comp/S1NY3R/tongkat-ali-eurycoma-longifolia-growing-in-the-wild-S1NY3R.jpg
82 | Excoecaria cochinchinensis,Cochin china hog plum,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT7CwHCqK1pU9KQ3LoV31uB-17f0WGL6RQt_w&usqp=CAU
83 | Excoecaria sp,Excoecaria,"Anti-inflammatory, antioxidant",https://w7.pngwing.com/pngs/956/695/png-transparent-mongodb-original-wordmark-logo-icon-thumbnail.png
84 | Fallopia multiflora,Japanese knotweed,"Anti-inflammatory, antioxidant",https://usercontent.one/wp/antropocene.it/wp-content/uploads/2021/12/Reynoutria_multiflora-800x445.jpg?media=1694510288
85 | Ficus racemosa,Banyan tree,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSNbpTQPraVAdNggSRkKqm4ewHIZ9WO4sfa85-jEUAPq2EVXfToTz9d6XeAa9dmTrfi0Mk&usqp=CAU
86 | Ficus auriculata,Golden fig,"Anti-inflammatory, antioxidant",https://www.feedipedia.org/sites/default/files/images/ficus_auriculata_trunk.jpg
87 | Fructus lycii,Lycium berry,"Antioxidant, anti-aging",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSpaQvBC5N03EQJxz_RG967fi6Kwk-vrEDarj2jADau0mIYV3yHsxgvGf0JCDCaKvOYdDc&usqp=CAU
88 | Glochidion eriocarpum,Hairy leaved spurge,"Anti-inflammatory, laxative",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSXhIhF72ZE-SIayQw5wfb3fwrQKb6brmBKag&usqp=CAU
89 | Glycosmis pentaphylla,Cape gooseberry,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT7Gt5mi8Bo-SqX3kpbuV4Ljb678VRiIqUI8NCIw969FljgXfHylDmlk3AYrRU6vtTObjo&usqp=CAU
90 | Gymnema sylvestre,Gurmar,"Anti-diabetic, antioxidant",https://rukminim2.flixcart.com/image/850/1000/l2tcfbk0/plant-sapling/3/w/d/no-annual-no-natural-gymnema-sylvestre-gudmar-plant-madhunashini-original-image2hswppsvcen.jpeg?q=90
91 | Gonocaryum lobbianum,Indian mulberry,"Anti-inflammatory, antioxidant",https://d2seqvvyy3b8p2.cloudfront.net/544b5da03d57d1dcf4ba03c4a7710882.jpg
92 | Hemerocallis fulva,Daylily,"Anti-inflammatory, antioxidant",https://newfs.s3.amazonaws.com/taxon-images-1000s1000/Hemerocallidaceae/hemerocallis-fulva-fl-ahaines-b.jpg
93 | Gynura divaricata,Heartleaf bitter gourd,"Anti-cancer, antioxidant",https://www.picturethisai.com/wiki-image/1080/157192242547654661.jpeg
94 | Hemigraphis glaucescens,Spiderleaf,"Anti-inflammatory, wound healing",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRVHGcu0n09uyOaWdGHk5bKl2-f3FLvyAJUKm9s5HiygzR_YNWayYhXGdaQM-k_tHUso7E&usqp=CAU
95 | Hibiscus mutabilis,Changeable roselle,"Anti-inflammatory, antioxidant",https://paudhshala.com/pub/media/catalog/product/cache/6267e56aaf40fbea9d3c10a535c02bf0/h/i/hibiscus-mutabilis-plant-for-sale.jpg
96 | Hibiscus rosa-sinensis,Chinese hibiscus,"Anti-inflammatory, antioxidant",https://5.imimg.com/data5/FW/EX/MY-531187/botanical-name-3a-hibiscus-rosa-sinensis-common-name-3a-gudhal.jpg
97 | Hibiscus sabdariffa,Roselle,"Anti-inflammatory, antioxidant","https://m.media-amazon.com/images/I/51z3VCaQi4L._AC_UF350,350_QL80_.jpg"
98 | Holarrhena pubescens,Devil's pepper,"Anti-inflammatory, anti-malarial",https://upload.wikimedia.org/wikipedia/commons/d/d9/Holarrhena_pubescens_flowers_%26_leaves_W_IMG_0293.jpg
99 | Holarrhena antidysenterica,Kurchi,"Anti-inflammatory, anti-malarial",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQYz0Of4zqsOCdAnpU2CXrLAQWA4XrMTwKYWw&usqp=CAU
100 | Homalomena occulta,Elephant ear,"Anti-inflammatory, diuretic",https://upload.wikimedia.org/wikipedia/commons/2/2e/Red_Arrow_Leaf_%28Homalomena_pendula%29.jpg
101 | Houttuynia cordata,Heartleaf houttuynia,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQhnBQuBFyDbKUWotB7W8J0DrtAl749JDXMo2f0WVLJV6pKjIiHAoIZ8vw_HHIVBKKJyVs&usqp=CAU
102 | Imperata cylindrica,Imperata,"Anti-inflammatory, diuretic",https://upload.wikimedia.org/wikipedia/commons/5/51/Imperata_cylindrica_tigaya_colony.jpg
103 | Iris domestica,Japanese iris,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/thumb/9/90/Belamcanda_chinensis_2007.jpg/640px-Belamcanda_chinensis_2007.jpg
104 | Ixora coccinea,Ixora,"Anti-inflammatory, antioxidant",https://s3.amazonaws.com/eit-planttoolbox-prod/media/images/Ixora-coccinea-bush--Alejandro-Bayer-Tamayo-CC-BY-SA_ybAIwdD.jpg
105 | Jasminum sambac,Arabian jasmine,"Anti-inflammatory, sedative","https://m.media-amazon.com/images/I/61xtpfzGVTL._AC_UF1000,1000_QL80_.jpg"
106 | Jatropha gossypiifolia,Physic nut,"Anti-inflammatory, laxative",https://i.pinimg.com/1200x/27/82/f5/2782f5fdfe42dd537b945020df9f4759.jpg
107 | Jatropha multifida,Coral plant,"Anti-inflammatory, laxative",https://i.etsystatic.com/31137316/r/il/fc15d3/3277730493/il_570xN.3277730493_kf5o.jpg
108 | Jatropha podagrica,Elephant's foot,"Anti-inflammatory, laxative",https://i.etsystatic.com/22819811/r/il/af97ed/4126173067/il_fullxfull.4126173067_grdw.jpg
109 | Justicia gendarussa,Gandarusa,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR7AOYJW4AIawbG9fo4NbPCa48x6HSQA-pe9KSHWE0d2950L2UP-PQOeis3rZP8SHxBU-Q&usqp=CAU
110 | Kalanchoe pinnata,Air plant,"Anti-inflammatory, wound healing",https://d2seqvvyy3b8p2.cloudfront.net/44dd467d0e05c1ce75b67ef63a3f6fea.jpg
111 | Lactuca indica,Indian lettuce,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRauYQl9x8MHx8Visy-ms2MJd6Ss7eVpJeEbMM1tkCtk9n1zolCDA8QQFb9GQFhDTLBtao&usqp=CAU
112 | Lantana camara,Lantana,"Anti-bacterial, antioxidant",https://nurserynisarga.in/wp-content/uploads/2022/01/Lantana-Camara-Plant_08.webp
113 | Lawsonia inermis,Henna,"Anti-inflammatory, antioxidant",https://i.etsystatic.com/6661027/r/il/42d301/1473331596/il_570xN.1473331596_o9zy.jpg
114 | Leea rubra,Red gooseberry,"Anti-inflammatory, antioxidant",https://www.nparks.gov.sg/-/media/ffw/migrated/round2/flora/2192/c590790a1bf44ccc876c241959d38892.ashx
115 | Litsea glutinosa,Litsea,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTov_Pd_tNQZ7oFNRf6opsHQkXy58GFzOGGFiY_T8jkB02q_6rtSigRazWm6kakEkqniw&usqp=CAU
116 | Lonicera dasystyla,Honeysuckle,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Honeysuckle-2.jpg/220px-Honeysuckle-2.jpg
117 | Lpomoea sp,Morning glory,"Anti-inflammatory, antioxidant",https://thumbs.dreamstime.com/b/flower-morning-glory-sao-paulo-sp-brazil-january-oceanblue-ipomoea-indica-spread-around-world-67673215.jpg
118 | Maesa indica,Maesa,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Maesa_indica_01.JPG/800px-Maesa_indica_01.JPG
119 | Mallotus barbatus,Mallotus,"Anti-inflammatory, antioxidant",https://www.shutterstock.com/image-photo/mallotus-barbatus-fruits-plants-southeast-260nw-2032539302.jpg
120 | Mangifera indica,Mango,"Anti-inflammatory, antioxidant",https://www.toothmountainnursery.com/wp-content/uploads/2020/03/Mango.jpg
121 | Melastoma malabathricum,Indian rhododendron,"Anti-inflammatory, antioxidant",https://globinmed.com/wp-content/uploads/2014/12/images_NKEA_Senduduk_figure_1a.jpg
122 | Mentha spicata,Spearmint,"Anti-inflammatory, antioxidant",https://s3.amazonaws.com/eit-planttoolbox-prod/media/images/mentha-spicata-leaves--Forest-and-Kim-Starr--CC-BY-20.jpg
123 | Microcos tomentosa,Sea grape,"Anti-inflammatory, antioxidant",https://s3.amazonaws.com/eit-planttoolbox-prod/media/images/mentha-spicata-leaves--Forest-and-Kim-Starr--CC-BY-20.jpg
124 | Micromelum falcatum,Bay rum tree,"Astringent, antiseptic","https://picturethisai.com/image-handle/website_cmsname/image/1080/153932061722279966.jpeg?x-oss-process=image/format,webp/quality,q_60/resize,l_600&v=1.0"
125 | Millettia pulchra,Pink shower,"Anti-inflammatory, antioxidant",https://jcra.ncsu.edu/photographs/digital-photographs/2017/08-august/IMG_4111.JPG
126 | Mimosa pudica,Sensitive plant,"Anti-inflammatory, wound healing","https://m.media-amazon.com/images/I/510XEuK3wIL._AC_UF1000,1000_QL80_.jpg"
127 | Morinda citrifolia,Noni,"Anti-inflammatory, antioxidant",https://i.ndtvimg.com/i/2015-04/fruit_625x350_61428471046.jpg
128 | Moringa oleifera,Drumstick tree,"Anti-inflammatory, antioxidant",https://5.imimg.com/data5/SELLER/Default/2023/2/WC/KH/VJ/6345425/moringa-oleifera-leaves.jpg
129 | Morus alba,Mulberry,"Anti-inflammatory, antioxidant",https://tropical.theferns.info/plantimages/sized/5/9/59cdc58b757376a657fc1001a0c29a3a0ab225c9_480px.jpg
130 | Mussaenda philippica,Pink Mussaenda,"Anti-inflammatory, antioxidant",https://www.cabidigitallibrary.org/cms/10.1079/cabicompendium.35195/asset/78cf1f66-6080-4a36-a557-571b09191d37/assets/graphic/35195_03.jpg
131 | Nelumbo nucifera,Sacred lotus,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTTnLFZKm4mYdyqgGaJlgh8Tzt_XjrqFDdFDHmzl_BOs6S6c-aCzsc3c2NtASazRiI4pc0&usqp=CAU
132 | Ocimum basilicum,Basil,"Anti-inflammatory, antioxidant",https://s3.amazonaws.com/eit-planttoolbox-prod/media/images/Ocimum_basilicum_Que_vutyHnVyiX02.jpeg
133 | Ocimum gratissimum,Holy basil,"Anti-inflammatory, antioxidant",https://www.tramil.net/sites/default/files/ocimum-gratissimum_vf.jpg
134 | Ocimum sanctum,Tulsi,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3eYyIrXcYQNNDc2yNB01IJDPE7nY5IG3ZRJ6ViSKIaTOxTaZXZ2dntjbe98nIbRWU4dg&usqp=CAU
135 | Oenanthe javanica,Javanese water dropwort,"Anti-inflammatory, diuretic","https://images.immediate.co.uk/production/volatile/sites/10/2018/08/a9511123-f277-4475-a405-46b63ae508e0-dbba7ef.jpg?quality=90&resize=556,371"
136 | Ophiopogon japonicus,Japanese lilyturf,"Anti-inflammatory, antioxidant","https://m.media-amazon.com/images/I/81wzZczqdfL._AC_UF1000,1000_QL80_.jpg"
137 | Paederia lanuginosa,Cat's whiskers,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQcdIx6Gj-pKrCHtXX-ft5WEouxudacuOjluQ&usqp=CAU
138 | Pandanus amaryllifolius,Screwpine,"Anti-inflammatory, antioxidant","https://m.media-amazon.com/images/I/81mqdLHuRcL._AC_UF1000,1000_QL80_.jpg"
139 | Pandanus sp.,Screwpine,"Anti-inflammatory, antioxidant",https://housing.com/news/wp-content/uploads/2022/11/image2-6.png
140 | Pandanus tectorius,Screwpine,"Anti-inflammatory, antioxidant",https://cdn.britannica.com/20/9720-050-02EF0150/Fruit-Pandanus-tectorius.jpg
141 | Parameria laevigata,Parameria,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ71NKVJQc-NxfSpb_ZS9t67ZlSXwZ1-_4blbM5t2n4SJ2NpZDpL53dHZQgqwgLGdDdosw&usqp=CAU
142 | Passiflora foetida,Stinking passionflower,"Anti-inflammatory, sedative",https://d2seqvvyy3b8p2.cloudfront.net/0dd7256a66f3e33cd12f010362d6c9e3.jpg
143 | Pereskia sacharosa,Sweet pitahaya,"Anti-diabetic, antioxidant",https://content.eol.org/data/media/87/65/89/7.CalPhotos_0000_0000_1210_1772.jpg
144 | Persicaria odorata,Water pepper,"Anti-inflammatory, diuretic",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSYdC9ExMWFq3QMAw19-x6qkalc7Zp1oHPTZbbzmRFBzNrOlaNLhl6UWkB73AZw3KeK20w&usqp=CAU
145 | Phlogacanthus turgidus,Firespike,"Anti-inflammatory, antioxidant",https://www.baobabs.com/PH/Phlogacanthus_turgidus_Pl.jpg
146 | Phrynium placentarium,Elephant's ear,"Anti-inflammatory, diuretic",https://upload.wikimedia.org/wikipedia/commons/0/06/The_dong_leaf.jpg
147 | Phyllanthus reticulatus,Toothache plant,"Anti-inflammatory, antibacterial",https://indiabiodiversity.org/files-api/api/get/raw/observations//c6a30b23-0a3e-422c-8d0c-4a062f5e37d8/10498.jpg
148 | Piper betle,Betel leaf,"Antimicrobial, antioxidant",https://tropical.theferns.info/plantimages/sized/5/4/54a0d60788cd5c8fa01efdde570d266333fea35e_300px.jpg
149 | Piper sarmentosum,Cat's whiskers,"Anti-inflammatory, antioxidant",https://www.pha-tad-ke.com/wp-content/uploads/2022/05/1-This-pepper-grows-wild-in-Southeast-Asia.jpg
150 | Plantago,Plantain,"Anti-inflammatory, wound healing",https://s3.amazonaws.com/eit-planttoolbox-prod/media/images/Plantago_major_ekenitr_ccbync20.jpg
151 | Platycladus orientalis,Chinese arborvitae,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT_JDKNV1wwEXgHB69UpZnkyntiNe5NdVy3i99Ch7SgZRK6bIDWlbxsl6uiG4y1VrkARxc&usqp=CAU
152 | Plectranthus amboinicus,Cuban oregano,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTltqDRx2K5CO9cV3W-lC9Yryru8ruzHHn9I960iR0mBKQMssaBg2TZjArkLXdK4j9WU80&usqp=CAU
153 | Pluchea pteropoda Hemsl,Pluchea,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ8sXnFaD0RHVdR3anWaI3MllPFRRsTzAMHPFT-s1gONDOAyfDhjenU9oMGONssVvIZIog&usqp=CAU
154 | Plukenetia volubilis,Sacha inchi,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/9/92/Plukenetia_volubilis_fruits.JPG
155 | Plumbago indica,Leadwort,"Anti-inflammatory, antioxidant",https://m.media-amazon.com/images/I/51qhwVxKffL.jpg
156 | Plumeria rubra,Frangipani,"Anti-inflammatory, sedative","https://m.media-amazon.com/images/I/51O+UVjjS0L._AC_UF1000,1000_QL80_.jpg"
157 | Polyginum cuspidatum,Japanese knotweed,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSKB5_qqEtSZVep-j0pvPYB-74QNFowgk1zHA&usqp=CAU
158 | Polyscias fruticosa,Ming aralia,"Anti-inflammatory, antioxidant",https://www.guide-to-houseplants.com/images/ming-aralia-pot.jpg
159 | Polyscias guilfoylei,Ming aralia,"Anti-inflammatory, antioxidant",https://i1.wp.com/greencoverinitiative.com/wp-content/uploads/2021/03/polyscias-guilfoylei5.jpg?ssl=1&resize=600%2C600
160 | Polyscias scutellaria,Ming aralia,"Anti-inflammatory, antioxidant",https://inaturalist-open-data.s3.amazonaws.com/photos/727077/large.jpg
161 | Pouzolzia zeylanica,Climbing fig,"Anti-inflammatory, diuretic",https://i0.wp.com/greencoverinitiative.com/wp-content/uploads/2022/10/Pouzolzia-zeylanica5.jpg?ssl=1&resize=600%2C600
162 | Premna serratifolia,Ceylon leadwort,"Anti-inflammatory, antioxidant",https://apps.lucidcentral.org/rainforest/images/entities/premna_serratifolia/p021023.jpg
163 | Pseuderanthemum latifolium,Indian nightshade,"Anti-inflammatory, antioxidant",https://media-plants.earth.com/images/2018/11/15/2597656824275567/pseuderanthemum-latifolium.jpg
164 | Psidium guajava,Guava,"Anti-inflammatory, antioxidant",https://www.monaconatureencyclopedia.com/wp-content/uploads/2017/01/1-101.jpg
165 | Psychotria reevesii Wall.,Cat's claw,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSneEnYY2wmDERsjb6AmdWUfIaILfeWY1AhrA&usqp=CAU
166 | Psychotria rubra,Brazilian pepper,"Anti-inflammatory, antioxidant",https://alchetron.com/cdn/psychotria-404b384f-3d84-4ee7-937d-a50e1fbf11e-resize-750.jpeg
167 | Quisqualis indica,Rangoon creeper,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/2/2f/Combretum_indicum_01.JPG
168 | Rauvolfia,Serpentine,"Anti-hypertensive, sedative","https://m.media-amazon.com/images/I/51Nv+Qr3-LL._AC_UF1000,1000_QL80_.jpg"
169 | Rauvolfia tetraphylla,Indian snakeroot,"Anti-hypertensive, sedative",https://indiabiodiversity.org/files-api/api/get/raw/observations//53a5c782-1f34-4f70-809b-87d40de4f5d5/47.JPG
170 | Rhinacanthus nasutus,Indian mallow,"Anti-inflammatory, wound healing",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT4sHWHA58_ONA15gHdR449TukFLlBTYOgFJw&usqp=CAU
171 | Rhodomyrtus tomentosa,Rose apple,"Anti-inflammatory, antioxidant",https://tropical.theferns.info/plantimages/sized/9/4/945194bd57b832fe503ca64ea60b82c8b337e698_480px.jpg
172 | Ruellia tuberosa,Texas star hibiscus,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRQSejAnHmEj8OqEdhLWauFHwSPr7Uee9z0AA&usqp=CAU
173 | Sanseviera canaliculata Carr,Snake plant,"Anti-inflammatory, wound healing",https://worldofsucculents.com/wp-content/uploads/2019/05/Sansevieria-canaliculata-Snake-Plant2.jpg
174 | Sarcandra glabra,Chinese sarsaparilla,"Anti-inflammatory, antioxidant",https://storage.googleapis.com/flower-db-prd/bef8dd7ab297dc91348233f5768f21a1.jpg
175 | Sauropus androgynus,Prickly sida,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRJxSrPcGarTFkI4eoJLD1ffPt24Izdt18Xv7kfZNk4onLzc2NJqfq6eVWq6V7oh_e9CWk&usqp=CAU
176 | Schefflera heptaphylla,Umbrella tree,"Anti-inflammatory, antioxidant","https://m.media-amazon.com/images/I/51UtUyXpRfL._AC_UF1000,1000_QL80_.jpg"
177 | Schefflera venulosa,Ming aralia,"Anti-inflammatory, antioxidant",https://www.monaconatureencyclopedia.com/wp-content/uploads/2008/08/jpg_Schefflera_venulosa.jpg
178 | Senna alata,Egyptian cassia,"Anti-inflammatory, laxative",https://media.istockphoto.com/id/1174307239/photo/candlestick-cassia-flower-in-a-butterfly-garden.jpg?s=612x612&w=0&k=20&c=rEPGhfZFFEi68ppMFU9zw6nMQiCk8rfW_wEPfaBCc_U=
179 | Solanum mammosum,Prickly pear,"Anti-inflammatory, antioxidant",https://d2seqvvyy3b8p2.cloudfront.net/170e59cd1de9a05b0570f6b2d15096a1.jpg
180 | Solanum torvum,Horse nettle,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSoFAYrIWoa6P5y1X4AvEVVWvgRUc2_wtwjASRtm_Iw0FRMKqAX3hKdVL-Jf4bscC5b5CU&usqp=CAU
181 | Sida acuta Burm.,Prickly sida,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/0/08/Sida_acuta_%E0%B4%AE%E0%B4%B2%E0%B4%99%E0%B5%8D%E0%B4%95%E0%B5%81%E0%B4%B1%E0%B5%81%E0%B4%A8%E0%B5%8D%E0%B4%A4%E0%B5%8B%E0%B4%9F%E0%B5%8D%E0%B4%9F%E0%B4%BF.jpg
182 | Spilanthes acmella,Toothache plant,"Anti-inflammatory, antibacterial",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSjlwEi8DktHNngzl8r8cvVZ5nBKvIlxd4cWQ&usqp=CAU
183 | Spondias dulcis,Hog plum,"Anti-inflammatory, antioxidant",https://upload.wikimedia.org/wikipedia/commons/0/05/Spondias_dulcis%2C_June_plum.jpg
184 | Stephania dielsiana,Climbing moonseed,"Anti-inflammatory, antioxidant",https://mplant.ump.edu.vn/wp-content/uploads/2020/12/Binh-voi-816x458.jpg
185 | Streptocaulon juventas,Creeping buttercup,"Anti-inflammatory, antioxidant",https://live.staticflickr.com/4781/40663639092_d7381fdf08_b.jpg
186 | Syzygium nervosum,Cluster fig,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRP3GPNp4ju0HusVXldFQk26AXlps72BJ4nfQ&usqp=CAU
187 | Tacca subflabellata,Black bat flower,"Anti-inflammatory, antioxidant",https://images.squarespace-cdn.com/content/v1/544591e6e4b0135285aeb5b6/1602516951112-UYHNK0EYDB0TCPA52III/5273863799_c829992337_o.jpg
188 | Tamarindus indica,Tamarind,"Anti-inflammatory, antioxidant",https://housing.com/news/wp-content/uploads/2023/01/Tamarind-tree-feature-compressed.jpg
189 | Terminalia catappa,Indian almond,"Anti-inflammatory, antioxidant","https://m.media-amazon.com/images/I/51N9avmn4uL._AC_UF1000,1000_QL80_.jpg"
190 | Tradescantia discolor,Wandering Jew,"Anti-inflammatory, antioxidant","https://m.media-amazon.com/images/I/51TBS7OMzcL._AC_UF1000,1000_QL80_.jpg"
191 | Trichanthera gigantea,Giant tickweed,"Anti-inflammatory, antioxidant",https://bs.plantnet.org/image/o/5ba739e3fd941600dea460a0eaf4f0ba5d164f72
192 | Vernonia amygdalina,Crape myrtle,"Anti-inflammatory, antioxidant",https://bs.plantnet.org/image/m/5b43938c55e4ec9ea78cd444dd3303df7dfd36f2
193 | Vitex negundo,Chaste tree,"Anti-inflammatory, antioxidant",https://m.media-amazon.com/images/I/71OslWV+6AL.jpg
194 | Xanthium strumarium,Cocklebur,"Anti-inflammatory, antioxidant",https://plantwiseplusknowledgebank.org/cms/10.1079/pwkb.species.56864/asset/3ad40afd-544d-4b14-91c6-5d5211ca5f49/assets/graphic/56864_01.jpg
195 | Zanthoxylum avicennae,Toothache tree,"Anti-inflammatory, antioxidant",https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ9YXVTGSEoZ6INBOrmtPeAGG0GX1kSBdg2aw&usqp=CAU
196 | Zingiber officinale,Ginger,"Anti-inflammatory, antioxidant",https://cdn.britannica.com/19/231119-050-35483892/Indian-ginger-Zingiber-officinale.jpg
197 | Ziziphus mauritiana,Jujube,"Anti-inflammatory, antioxidant","https://m.media-amazon.com/images/I/812OLDfXh4L._AC_UF1000,1000_QL80_.jpg"
198 | Helicteres hirsuta,Golden shower,"Anti-inflammatory, antioxidant",https://diendancaythuocnam.com/wp-content/uploads/2021/10/cong-dung-chua-benh-gan-nhiem-mo-cua-cay-an-xoa-4-1.jpg
199 | Tabernaemontana divaricata,Yellow oleander,"Anti-inflammatory, antioxidant",https://www.toothmountainnursery.com/wp-content/uploads/2020/02/Chandni.jpg
200 | Stereospermum chelonoides,Trumpet flower,"Anti-inflammatory, antioxidant",https://1.bp.blogspot.com/-0i2RUGWQ9EI/XcPAA5xRs0I/AAAAAAAAT0Q/54ucgG8DWo4ZuZeZ-92vjuvKfz0OoUklACLcBGAsYHQ/s1600/Parul_Fragrant_padri_Tree_Stereospermum_chelonoides_04.JPG
201 | Stachytarpheta jamaicensis,Spanish needles,"Anti-inflammatory, antioxidant",https://www.urbanmali.com/cdn/shop/products/Stachytarpheta_jamaicensis_kui-chang.jpg?v=1618486921
202 | ,,,
203 | ,,,
204 | ,,,
205 | ,,,
206 | ,,,
207 | ,,,
208 | ,,,
209 | ,,,
210 | ,,,
211 | ,,,
212 | ,,,
213 | ,,,
214 | ,,,
215 | ,,,
216 | ,,,
217 | ,,,
218 | ,,,
219 | ,,,
220 | ,,,
221 | ,,,
222 | ,,,
223 | ,,,
224 | ,,,
225 | ,,,
226 | ,,,
227 | ,,,
228 | ,,,
229 | ,,,
230 | ,,,
231 | ,,,
232 | ,,,
233 | ,,,
234 | ,,,
235 | ,,,
236 | ,,,
237 | ,,,
238 | ,,,
239 | ,,,
240 | ,,,
241 | ,,,
242 | ,,,
243 | ,,,
244 | ,,,
245 | ,,,
246 | ,,,
247 | ,,,
248 | ,,,
249 | ,,,
250 | ,,,
251 | ,,,
252 | ,,,
253 | ,,,
254 | ,,,
255 | ,,,
256 | ,,,
257 | ,,,
258 | ,,,
259 | ,,,
260 | ,,,
261 | ,,,
262 | ,,,
263 | ,,,
264 | ,,,
265 | ,,,
266 | ,,,
267 | ,,,
268 | ,,,
269 | ,,,
270 | ,,,
271 | ,,,
272 | ,,,
273 | ,,,
274 | ,,,
275 | ,,,
276 | ,,,
277 | ,,,
278 | ,,,
279 | ,,,
280 | ,,,
281 | ,,,
282 | ,,,
283 | ,,,
284 | ,,,
285 | ,,,
286 | ,,,
287 | ,,,
288 | ,,,
289 | ,,,
290 | ,,,
291 | ,,,
292 | ,,,
293 | ,,,
294 | ,,,
295 | ,,,
296 | ,,,
297 | ,,,
298 | ,,,
299 | ,,,
300 | ,,,
301 | ,,,
302 | ,,,
303 | ,,,
304 | ,,,
305 | ,,,
306 | ,,,
307 | ,,,
308 | ,,,
309 | ,,,
310 | ,,,
311 | ,,,
312 | ,,,
313 | ,,,
314 | ,,,
315 | ,,,
316 | ,,,
317 | ,,,
318 | ,,,
319 | ,,,
320 | ,,,
321 | ,,,
322 | ,,,
323 | ,,,
324 | ,,,
325 | ,,,
326 | ,,,
327 | ,,,
328 | ,,,
329 | ,,,
330 | ,,,
331 | ,,,
332 | ,,,
333 | ,,,
334 | ,,,
335 | ,,,
336 | ,,,
337 | ,,,
338 | ,,,
339 | ,,,
340 | ,,,
341 | ,,,
342 | ,,,
343 | ,,,
344 | ,,,
345 | ,,,
346 | ,,,
347 | ,,,
348 | ,,,
349 | ,,,
350 | ,,,
351 | ,,,
352 | ,,,
353 | ,,,
354 | ,,,
355 | ,,,
356 | ,,,
357 | ,,,
358 | ,,,
359 | ,,,
360 | ,,,
361 | ,,,
362 | ,,,
363 | ,,,
364 | ,,,
365 | ,,,
366 | ,,,
367 | ,,,
368 | ,,,
369 | ,,,
370 | ,,,
371 | ,,,
372 | ,,,
373 | ,,,
374 | ,,,
375 | ,,,
376 | ,,,
377 | ,,,
378 | ,,,
379 | ,,,
380 | ,,,
381 | ,,,
382 | ,,,
383 | ,,,
384 | ,,,
385 | ,,,
386 | ,,,
387 | ,,,
388 | ,,,
389 | ,,,
390 | ,,,
391 | ,,,
392 | ,,,
393 | ,,,
394 | ,,,
395 | ,,,
396 | ,,,
397 | ,,,
398 | ,,,
399 | ,,,
400 | ,,,
401 | ,,,
402 | ,,,
403 | ,,,
404 | ,,,
405 | ,,,
406 | ,,,
407 | ,,,
408 | ,,,
409 | ,,,
410 | ,,,
411 | ,,,
412 | ,,,
413 | ,,,
414 | ,,,
415 | ,,,
416 | ,,,
417 | ,,,
418 | ,,,
419 | ,,,
420 | ,,,
421 | ,,,
422 | ,,,
423 | ,,,
424 | ,,,
425 | ,,,
426 | ,,,
427 | ,,,
428 | ,,,
429 | ,,,
430 | ,,,
431 | ,,,
432 | ,,,
433 | ,,,
434 | ,,,
435 | ,,,
436 | ,,,
437 | ,,,
438 | ,,,
439 | ,,,
440 | ,,,
441 | ,,,
442 | ,,,
443 | ,,,
444 | ,,,
445 | ,,,
446 | ,,,
447 | ,,,
448 | ,,,
449 | ,,,
450 | ,,,
451 | ,,,
452 | ,,,
453 | ,,,
454 | ,,,
455 | ,,,
456 | ,,,
457 | ,,,
458 | ,,,
459 | ,,,
460 | ,,,
461 | ,,,
462 | ,,,
463 | ,,,
464 | ,,,
465 | ,,,
466 | ,,,
467 | ,,,
468 | ,,,
469 | ,,,
470 | ,,,
471 | ,,,
472 | ,,,
473 | ,,,
474 | ,,,
475 | ,,,
476 | ,,,
477 | ,,,
478 | ,,,
479 | ,,,
480 | ,,,
481 | ,,,
482 | ,,,
483 | ,,,
484 | ,,,
485 | ,,,
486 | ,,,
487 | ,,,
488 | ,,,
489 | ,,,
490 | ,,,
491 | ,,,
492 | ,,,
493 | ,,,
494 | ,,,
495 | ,,,
496 | ,,,
497 | ,,,
498 | ,,,
499 | ,,,
500 | ,,,
501 | ,,,
502 | ,,,
503 | ,,,
504 | ,,,
505 | ,,,
506 | ,,,
507 | ,,,
508 | ,,,
509 | ,,,
510 | ,,,
511 | ,,,
512 | ,,,
513 | ,,,
514 | ,,,
515 | ,,,
516 | ,,,
517 | ,,,
518 | ,,,
519 | ,,,
520 | ,,,
521 | ,,,
522 | ,,,
523 | ,,,
524 | ,,,
525 | ,,,
526 | ,,,
527 | ,,,
528 | ,,,
529 | ,,,
530 | ,,,
531 | ,,,
532 | ,,,
533 | ,,,
534 | ,,,
535 | ,,,
536 | ,,,
537 | ,,,
538 | ,,,
539 | ,,,
540 | ,,,
541 | ,,,
542 | ,,,
543 | ,,,
544 | ,,,
545 | ,,,
546 | ,,,
547 | ,,,
548 | ,,,
549 | ,,,
550 | ,,,
551 | ,,,
552 | ,,,
553 | ,,,
554 | ,,,
555 | ,,,
556 | ,,,
557 | ,,,
558 | ,,,
559 | ,,,
560 | ,,,
561 | ,,,
562 | ,,,
563 | ,,,
564 | ,,,
565 | ,,,
566 | ,,,
567 | ,,,
568 | ,,,
569 | ,,,
570 | ,,,
571 | ,,,
572 | ,,,
573 | ,,,
574 | ,,,
575 | ,,,
576 | ,,,
577 | ,,,
578 | ,,,
579 | ,,,
580 | ,,,
581 | ,,,
582 | ,,,
583 | ,,,
584 | ,,,
585 | ,,,
586 | ,,,
587 | ,,,
588 | ,,,
589 | ,,,
590 | ,,,
591 | ,,,
592 | ,,,
593 | ,,,
594 | ,,,
595 | ,,,
596 | ,,,
597 | ,,,
598 | ,,,
599 | ,,,
600 | ,,,
601 | ,,,
602 | ,,,
603 | ,,,
604 | ,,,
605 | ,,,
606 | ,,,
607 | ,,,
608 | ,,,
609 | ,,,
610 | ,,,
611 | ,,,
612 | ,,,
613 | ,,,
614 | ,,,
615 | ,,,
616 | ,,,
617 | ,,,
618 | ,,,
619 | ,,,
620 | ,,,
621 | ,,,
622 | ,,,
623 | ,,,
624 | ,,,
625 | ,,,
626 | ,,,
627 | ,,,
628 | ,,,
629 | ,,,
630 | ,,,
631 | ,,,
632 | ,,,
633 | ,,,
634 | ,,,
635 | ,,,
636 | ,,,
637 | ,,,
638 | ,,,
639 | ,,,
640 | ,,,
641 | ,,,
642 | ,,,
643 | ,,,
644 | ,,,
645 | ,,,
646 | ,,,
647 | ,,,
648 | ,,,
649 | ,,,
650 | ,,,
651 | ,,,
652 | ,,,
653 | ,,,
654 | ,,,
655 | ,,,
656 | ,,,
657 | ,,,
658 | ,,,
659 | ,,,
660 | ,,,
661 | ,,,
662 | ,,,
663 | ,,,
664 | ,,,
665 | ,,,
666 | ,,,
667 | ,,,
668 | ,,,
669 | ,,,
670 | ,,,
671 | ,,,
672 | ,,,
673 | ,,,
674 | ,,,
675 | ,,,
676 | ,,,
677 | ,,,
678 | ,,,
679 | ,,,
680 | ,,,
681 | ,,,
682 | ,,,
683 | ,,,
684 | ,,,
685 | ,,,
686 | ,,,
687 | ,,,
688 | ,,,
689 | ,,,
690 | ,,,
691 | ,,,
692 | ,,,
693 | ,,,
694 | ,,,
695 | ,,,
696 | ,,,
697 | ,,,
698 | ,,,
699 | ,,,
700 | ,,,
701 | ,,,
702 | ,,,
703 | ,,,
704 | ,,,
705 | ,,,
706 | ,,,
707 | ,,,
708 | ,,,
709 | ,,,
710 | ,,,
711 | ,,,
712 | ,,,
713 | ,,,
714 | ,,,
715 | ,,,
716 | ,,,
717 | ,,,
718 | ,,,
719 | ,,,
720 | ,,,
721 | ,,,
722 | ,,,
723 | ,,,
724 | ,,,
725 | ,,,
726 | ,,,
727 | ,,,
728 | ,,,
729 | ,,,
730 | ,,,
731 | ,,,
732 | ,,,
733 | ,,,
734 | ,,,
735 | ,,,
736 | ,,,
737 | ,,,
738 | ,,,
739 | ,,,
740 | ,,,
741 | ,,,
742 | ,,,
743 | ,,,
744 | ,,,
745 | ,,,
746 | ,,,
747 | ,,,
748 | ,,,
749 | ,,,
750 | ,,,
751 | ,,,
752 | ,,,
753 | ,,,
754 | ,,,
755 | ,,,
756 | ,,,
757 | ,,,
758 | ,,,
759 | ,,,
760 | ,,,
761 | ,,,
762 | ,,,
763 | ,,,
764 | ,,,
765 | ,,,
766 | ,,,
767 | ,,,
768 | ,,,
769 | ,,,
770 | ,,,
771 | ,,,
772 | ,,,
773 | ,,,
774 | ,,,
775 | ,,,
776 | ,,,
777 | ,,,
778 | ,,,
779 | ,,,
780 | ,,,
781 | ,,,
782 | ,,,
783 | ,,,
784 | ,,,
785 | ,,,
786 | ,,,
787 | ,,,
788 | ,,,
789 | ,,,
790 | ,,,
791 | ,,,
792 | ,,,
793 | ,,,
794 | ,,,
795 | ,,,
796 | ,,,
797 | ,,,
798 | ,,,
799 | ,,,
800 | ,,,
801 | ,,,
802 | ,,,
803 | ,,,
804 | ,,,
805 | ,,,
806 | ,,,
807 | ,,,
808 | ,,,
809 | ,,,
810 | ,,,
811 | ,,,
812 | ,,,
813 | ,,,
814 | ,,,
815 | ,,,
816 | ,,,
817 | ,,,
818 | ,,,
819 | ,,,
820 | ,,,
821 | ,,,
822 | ,,,
823 | ,,,
824 | ,,,
825 | ,,,
826 | ,,,
827 | ,,,
828 | ,,,
829 | ,,,
830 | ,,,
831 | ,,,
832 | ,,,
833 | ,,,
834 | ,,,
835 | ,,,
836 | ,,,
837 | ,,,
838 | ,,,
839 | ,,,
840 | ,,,
841 | ,,,
842 | ,,,
843 | ,,,
844 | ,,,
845 | ,,,
846 | ,,,
847 | ,,,
848 | ,,,
849 | ,,,
850 | ,,,
851 | ,,,
852 | ,,,
853 | ,,,
854 | ,,,
855 | ,,,
856 | ,,,
857 | ,,,
858 | ,,,
859 | ,,,
860 | ,,,
861 | ,,,
862 | ,,,
863 | ,,,
864 | ,,,
865 | ,,,
866 | ,,,
867 | ,,,
868 | ,,,
869 | ,,,
870 | ,,,
871 | ,,,
872 | ,,,
873 | ,,,
874 | ,,,
875 | ,,,
876 | ,,,
877 | ,,,
878 | ,,,
879 | ,,,
880 | ,,,
881 | ,,,
882 | ,,,
883 | ,,,
884 | ,,,
885 | ,,,
886 | ,,,
887 | ,,,
888 | ,,,
889 | ,,,
890 | ,,,
891 | ,,,
892 | ,,,
893 | ,,,
894 | ,,,
895 | ,,,
896 | ,,,
897 | ,,,
898 | ,,,
899 | ,,,
900 | ,,,
901 | ,,,
902 | ,,,
903 | ,,,
904 | ,,,
905 | ,,,
906 | ,,,
907 | ,,,
908 | ,,,
909 | ,,,
910 | ,,,
911 | ,,,
912 | ,,,
913 | ,,,
914 | ,,,
915 | ,,,
916 | ,,,
917 | ,,,
918 | ,,,
919 | ,,,
920 | ,,,
921 | ,,,
922 | ,,,
923 | ,,,
924 | ,,,
925 | ,,,
926 | ,,,
927 | ,,,
928 | ,,,
929 | ,,,
930 | ,,,
931 | ,,,
932 | ,,,
933 | ,,,
934 | ,,,
935 | ,,,
936 | ,,,
937 | ,,,
938 | ,,,
939 | ,,,
940 | ,,,
941 | ,,,
942 | ,,,
943 | ,,,
944 | ,,,
945 | ,,,
946 | ,,,
947 | ,,,
948 | ,,,
949 | ,,,
950 | ,,,
951 | ,,,
952 | ,,,
953 | ,,,
954 | ,,,
955 | ,,,
956 | ,,,
957 | ,,,
958 | ,,,
959 | ,,,
960 | ,,,
961 | ,,,
962 | ,,,
963 | ,,,
964 | ,,,
965 | ,,,
966 | ,,,
967 | ,,,
968 | ,,,
969 | ,,,
970 | ,,,
971 | ,,,
972 | ,,,
973 | ,,,
974 | ,,,
975 | ,,,
976 | ,,,
977 | ,,,
978 | ,,,
979 | ,,,
980 | ,,,
981 | ,,,
982 | ,,,
983 | ,,,
984 | ,,,
985 | ,,,
986 | ,,,
987 | ,,,
988 | ,,,
989 | ,,,
990 | ,,,
991 | ,,,
992 | ,,,
993 | ,,,
994 | ,,,
995 | ,,,
996 | ,,,
997 | ,,,
998 | ,,,
999 | ,,,
1000 | ,,,
1001 |
--------------------------------------------------------------------------------
/routes/plantRoute.js:
--------------------------------------------------------------------------------
1 | import express from "express";
2 | import multer from "multer";
3 | import bodyParser from "body-parser";
4 | import {
5 | getFeedback,
6 | getPlantController,
7 | getResultName,
8 | postFeedback,
9 | uploadPlantController,
10 | } from "../controller/plantController.js";
11 |
12 | //router object
13 | const router = express.Router();
14 | const plant = express();
15 | plant.use(bodyParser.urlencoded({ extended: true }));
16 | plant.use(express.static("./public"));
17 |
18 | var storage = multer.diskStorage({
19 | destination: (req, files, cb) => {
20 | cb(null, "./public/uploads");
21 | },
22 | filename: (req, file, cb) => {
23 | cb(null, file.originalname);
24 | },
25 | });
26 |
27 | var upload = multer({ storage: storage });
28 |
29 | router.post("/create", upload.single("file"), uploadPlantController);
30 |
31 | export default router;
32 |
33 | // router.get("/:name", getPlantController);
34 | router.get("/:name", getPlantController);
35 |
36 | router.post("/feedback", postFeedback);
37 | router.get("/feedback", getFeedback);
38 |
39 | router.post("/mlmodel", getResultName);
40 |
--------------------------------------------------------------------------------
/server.js:
--------------------------------------------------------------------------------
1 | import express from "express";
2 | import dotenv from "dotenv";
3 | import morgan from "morgan";
4 | import colors from "colors";
5 | import connectDB from "./config/db.js";
6 | import plantRoute from "./routes/plantRoute.js";
7 |
8 | import cors from "cors";
9 |
10 | // config dotenv
11 | dotenv.config();
12 |
13 | //database config
14 | connectDB();
15 |
16 | //rest object
17 | const app = express();
18 |
19 | //middlewares
20 | app.use(cors());
21 | app.use(express.json());
22 | app.use(morgan("dev"));
23 |
24 | //routes
25 | app.use("/api/v1/plant", plantRoute);
26 |
27 | //rest api
28 | app.get("/", (req, res) => {
29 | res.send("Welcome to Med-Plant project
");
30 | });
31 |
32 | //port
33 | const port = process.env.port;
34 | // listen
35 | app.listen(port, () => {
36 | console.log(`server running on ${port}`.bgCyan.black);
37 | });
38 |
--------------------------------------------------------------------------------