RushiMane2003 commited on
Commit
2ae7239
·
verified ·
1 Parent(s): ab1aa47

Create results

Browse files
Files changed (1) hide show
  1. templates/results +344 -0
templates/results ADDED
@@ -0,0 +1,344 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Plant Analysis Results</title>
7
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
8
+ <style>
9
+ body {
10
+ background-color: #f8f9fa;
11
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
12
+ }
13
+ .header-section {
14
+ background-color: #28a745;
15
+ color: white;
16
+ padding: 2rem 0;
17
+ margin-bottom: 2rem;
18
+ }
19
+ .result-container {
20
+ background-color: white;
21
+ border-radius: 10px;
22
+ padding: 2rem;
23
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
24
+ margin-bottom: 2rem;
25
+ }
26
+ .image-container {
27
+ text-align: center;
28
+ margin-bottom: 2rem;
29
+ }
30
+ .image-container img {
31
+ max-height: 400px;
32
+ max-width: 100%;
33
+ border-radius: 8px;
34
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
35
+ }
36
+ .result-card {
37
+ border-left: 4px solid;
38
+ margin-bottom: 1.5rem;
39
+ padding: 1rem;
40
+ border-radius: 5px;
41
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
42
+ }
43
+ .healthy {
44
+ background-color: #d4edda;
45
+ border-left-color: #28a745;
46
+ }
47
+ .severity-low {
48
+ background-color: #e7f5e9;
49
+ border-left-color: #3cb371;
50
+ }
51
+ .severity-medium {
52
+ background-color: #fff3cd;
53
+ border-left-color: #ffc107;
54
+ }
55
+ .severity-high {
56
+ background-color: #f8d7da;
57
+ border-left-color: #dc3545;
58
+ }
59
+ .info-row {
60
+ display: flex;
61
+ margin-bottom: 0.5rem;
62
+ }
63
+ .info-label {
64
+ font-weight: bold;
65
+ width: 120px;
66
+ flex-shrink: 0;
67
+ }
68
+ .info-content {
69
+ flex-grow: 1;
70
+ }
71
+ .probability-bar {
72
+ height: 8px;
73
+ background-color: #e9ecef;
74
+ border-radius: 4px;
75
+ margin-top: 5px;
76
+ overflow: hidden;
77
+ }
78
+ .probability-fill {
79
+ height: 100%;
80
+ border-radius: 4px;
81
+ background-color: #28a745;
82
+ }
83
+ .product-card {
84
+ height: 100%;
85
+ transition: transform 0.3s;
86
+ }
87
+ .product-card:hover {
88
+ transform: translateY(-5px);
89
+ box-shadow: 0 5px 15px rgba(0,0,0,0.1);
90
+ }
91
+ .info-source {
92
+ font-size: 0.8rem;
93
+ color: #6c757d;
94
+ margin-top: 0.5rem;
95
+ }
96
+ .resource-badge {
97
+ position: absolute;
98
+ top: 10px;
99
+ right: 10px;
100
+ font-size: 0.7rem;
101
+ }
102
+ </style>
103
+ </head>
104
+ <body>
105
+ <div class="header-section">
106
+ <div class="container text-center">
107
+ <h1 class="display-5">Plant Analysis Results</h1>
108
+ <p class="lead">Analysis for {{ plant_name }}</p>
109
+ </div>
110
+ </div>
111
+
112
+ <div class="container mb-5">
113
+ <div class="row">
114
+ <div class="col-md-4">
115
+ <div class="image-container">
116
+ <img src="{{ url_for('static', filename=image_path) }}" alt="{{ plant_name }} Image" class="img-fluid">
117
+ <div class="mt-3">
118
+ <h5>{{ plant_name }}</h5>
119
+ {% if results.is_healthy %}
120
+ <span class="badge bg-success">Healthy</span>
121
+ {% else %}
122
+ <span class="badge bg-warning">Issues Detected</span>
123
+ {% endif %}
124
+ </div>
125
+ </div>
126
+
127
+ <div class="result-container">
128
+ <h4>Analysis Summary</h4>
129
+ <div class="info-row">
130
+ <div class="info-label">Plant:</div>
131
+ <div class="info-content">{{ plant_name }}</div>
132
+ </div>
133
+ <div class="info-row">
134
+ <div class="info-label">Status:</div>
135
+ <div class="info-content">
136
+ {% if results.is_healthy %}
137
+ <span class="text-success">Healthy</span>
138
+ {% else %}
139
+ <span class="text-warning">Issues Detected</span>
140
+ {% endif %}
141
+ </div>
142
+ </div>
143
+ {% if results.confidence %}
144
+ <div class="info-row">
145
+ <div class="info-label">Confidence:</div>
146
+ <div class="info-content">{{ results.confidence }}</div>
147
+ </div>
148
+ {% endif %}
149
+
150
+ <div class="d-grid gap-2 mt-4">
151
+ <a href="{{ url_for('index') }}" class="btn btn-primary">Analyze Another Plant</a>
152
+ </div>
153
+ </div>
154
+
155
+ {% if results.audio_file %}
156
+ <div class="result-container mt-3">
157
+ <h5>Audio Summary:</h5>
158
+ <audio controls>
159
+ <source src="static/audio/audio_result.mp3" type="audio/mp3">
160
+ Your browser does not support the audio element.
161
+ </audio>
162
+ </div>
163
+ {% endif %}
164
+ </div>
165
+
166
+ <div class="col-md-8">
167
+ {% if results.is_healthy %}
168
+ <div class="result-container healthy">
169
+ <h3 class="text-success">Good News!</h3>
170
+ <p class="lead">Your {{ plant_name }} plant appears to be healthy. Continue with your current care practices.</p>
171
+
172
+ <h5 class="mt-4">Recommendations:</h5>
173
+ <ul>
174
+ <li>Maintain regular watering schedule</li>
175
+ <li>Continue with balanced fertilization</li>
176
+ <li>Monitor for any changes in appearance</li>
177
+ <li>Ensure proper sunlight exposure</li>
178
+ <li>Practice preventive measures against common pests and diseases</li>
179
+ </ul>
180
+ </div>
181
+ {% elif results.results %}
182
+ <div class="result-container">
183
+ <h3>Detected Issues</h3>
184
+ <p>Here are the potential issues detected in your {{ plant_name }} plant:</p>
185
+
186
+ {% for result in results.results %}
187
+ <div class="result-card severity-{{ result.severity|lower }}">
188
+ <div class="d-flex justify-content-between align-items-center mb-2">
189
+ <h4>{{ loop.index }}. {{ result.name }}</h4>
190
+ <div>
191
+ <span class="badge bg-info me-2">{{ result.type }}</span>
192
+ <span class="badge {% if result.severity|lower == 'low' %}bg-success{% elif result.severity|lower == 'medium' %}bg-warning{% else %}bg-danger{% endif %}">
193
+ {{ result.severity }} Severity
194
+ </span>
195
+ </div>
196
+ </div>
197
+
198
+ <div class="info-row">
199
+ <div class="info-label">Probability:</div>
200
+ <div class="info-content">
201
+ {{ result.probability }}
202
+ <div class="probability-bar">
203
+ {% set prob_value = result.probability|replace('%', '')|float %}
204
+ <div class="probability-fill" style="width: {{ prob_value }}%;"></div>
205
+ </div>
206
+ </div>
207
+ </div>
208
+
209
+ <div class="info-row">
210
+ <div class="info-label">Symptoms:</div>
211
+ <div class="info-content">{{ result.symptoms }}</div>
212
+ </div>
213
+
214
+ <div class="info-row">
215
+ <div class="info-label">Causes:</div>
216
+ <div class="info-content">{{ result.causes }}</div>
217
+ </div>
218
+
219
+ <div class="info-row">
220
+ <div class="info-label">Spreading:</div>
221
+ <div class="info-content">{{ result.spreading }}</div>
222
+ </div>
223
+
224
+ <div class="mt-3">
225
+ <h5>Treatment:</h5>
226
+ <p>{{ result.treatment }}</p>
227
+ </div>
228
+
229
+ <div class="mt-3">
230
+ <h5>Prevention:</h5>
231
+ <p>{{ result.prevention }}</p>
232
+ </div>
233
+
234
+ {% if web_info and result.name in web_info and web_info[result.name] %}
235
+ <div class="mt-4">
236
+ <h5>Additional Information:</h5>
237
+ <div class="card">
238
+ <div class="card-body">
239
+ <h6 class="card-title">{{ web_info[result.name].title }}</h6>
240
+ <p class="card-text">{{ web_info[result.name].summary }}</p>
241
+ <div class="d-flex justify-content-between">
242
+ <a href="{{ web_info[result.name].link }}" class="btn btn-sm btn-outline-success" target="_blank">Read More</a>
243
+ <span class="info-source">Source: Agrowon</span>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </div>
248
+ {% endif %}
249
+
250
+ {% if product_info and result.name in product_info and product_info[result.name] %}
251
+ <div class="mt-4">
252
+ <h5>Recommended Products:</h5>
253
+ <div class="row">
254
+ {% for product in product_info[result.name][:2] %}
255
+ <div class="col-md-6 mb-2">
256
+ <div class="card product-card">
257
+ <div class="card-body">
258
+ <span class="badge bg-secondary resource-badge">
259
+ {% if 'indiamart' in product.link %}IndiaMart{% else %}Krishi Seva{% endif %}
260
+ </span>
261
+ <h6 class="card-title" style="font-size: 0.9rem;">{{ product.title }}</h6>
262
+ <p class="card-text small">{{ product.snippet[:100] }}{% if product.snippet|length > 100 %}...{% endif %}</p>
263
+ <a href="{{ product.link }}" class="btn btn-sm btn-outline-primary" target="_blank">View Product</a>
264
+ </div>
265
+ </div>
266
+ </div>
267
+ {% endfor %}
268
+ </div>
269
+ {% if product_info[result.name]|length > 2 %}
270
+ <div class="text-center mt-2">
271
+ <button class="btn btn-sm btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#moreProducts{{ loop.index }}" aria-expanded="false">
272
+ Show more products <i class="bi bi-chevron-down"></i>
273
+ </button>
274
+ <div class="collapse" id="moreProducts{{ loop.index }}">
275
+ <div class="row mt-2">
276
+ {% for product in product_info[result.name][2:] %}
277
+ <div class="col-md-6 mb-2">
278
+ <div class="card product-card">
279
+ <div class="card-body">
280
+ <span class="badge bg-secondary resource-badge">
281
+ {% if 'indiamart' in product.link %}IndiaMart{% else %}Krishi Seva{% endif %}
282
+ </span>
283
+ <h6 class="card-title" style="font-size: 0.9rem;">{{ product.title }}</h6>
284
+ <p class="card-text small">{{ product.snippet[:100] }}{% if product.snippet|length > 100 %}...{% endif %}</p>
285
+ <a href="{{ product.link }}" class="btn btn-sm btn-outline-primary" target="_blank">View Product</a>
286
+ </div>
287
+ </div>
288
+ </div>
289
+ {% endfor %}
290
+ </div>
291
+ </div>
292
+ </div>
293
+ {% endif %}
294
+ </div>
295
+ {% endif %}
296
+ </div>
297
+ {% endfor %}
298
+ <div class="mt-4 alert alert-info">
299
+ <h5 class="alert-heading">Disclaimer</h5>
300
+ <p>The product recommendations are provided for informational purposes only. Always consult with a local agricultural expert for specific recommendations suited to your region and conditions.</p>
301
+ </div>
302
+ <div class="container mb-5">
303
+ <div class="result-container">
304
+ <h4>Send us your Feedback</h4>
305
+ <p>We would love to hear your thoughts on the analysis.</p>
306
+ <form action="/feedback" method="post">
307
+ <input type="hidden" name="plant_name" value="{{ plant_name }}">
308
+ <div class="mb-3">
309
+ <textarea class="form-control" name="feedback" rows="4" placeholder="Your feedback here..." required></textarea>
310
+ </div>
311
+ <button type="submit" class="btn btn-primary">Submit Feedback</button>
312
+ </form>
313
+ </div>
314
+ </div>
315
+ </div>
316
+ {% else %}
317
+ <div class="result-container">
318
+ <div class="alert alert-warning">
319
+ <h4 class="alert-heading">Analysis Inconclusive</h4>
320
+ <p>We couldn't determine with certainty whether your plant has issues. This could be due to:</p>
321
+ <ul>
322
+ <li>Image quality or lighting issues</li>
323
+ <li>Early stage symptoms that aren't clearly visible</li>
324
+ <li>A rare condition not in our database</li>
325
+ </ul>
326
+ <hr>
327
+ <p class="mb-0">Try uploading a clearer image or one that shows the affected areas more directly.</p>
328
+ </div>
329
+ </div>
330
+ {% endif %}
331
+ </div>
332
+ </div>
333
+ </div>
334
+
335
+ <footer class="bg-dark text-white text-center py-3">
336
+ <div class="container">
337
+ <p class="mb-0">Plant Disease Detector &copy; 2025 | Powered by Gemini AI</p>
338
+ </div>
339
+ </footer>
340
+
341
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
342
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css">
343
+ </body>
344
+ </html>