Crocolil commited on
Commit
5aebc43
Β·
2 Parent(s): 8d688d3fb94fe3

Merge remote Space changes into drag-and-drop branch

Browse files
Files changed (2) hide show
  1. README.md +11 -2
  2. app.py +4 -5
README.md CHANGED
@@ -13,14 +13,22 @@ pinned: false
13
 
14
  # Guarden πŸŒ±πŸ›‘οΈ
15
 
16
- An AI-powered plant care assistant that identifies plants from pictures and provides personalized watering recommendations based on weather forecasts.
 
 
 
 
 
 
 
 
17
 
18
  ### Team :
19
  [AntoineR974](https://huggingface.co/AntoineR974) and [Crocolil](https://huggingface.co/Crocolil)
20
 
21
  ## Description
22
 
23
- x helps users build and manage a virtual garden. Simply upload a picture of a plant, and the application identifies the species using a computer vision model trained on plant datasets. Once identified, the plant is added to the user's virtual garden, where they can view plant information, care requirements, and daily watering recommendations.
24
 
25
  The application combines:
26
 
@@ -35,6 +43,7 @@ The application combines:
35
  * 🌿 Virtual garden management
36
  * 🌀 7-day weather forecast
37
  * πŸ’§ Daily watering recommendations
 
38
  * πŸ“Š Plant care information dashboard
39
 
40
  ## Demo Video
 
13
 
14
  # Guarden πŸŒ±πŸ›‘οΈ
15
 
16
+ An AI-powered plant care companion that identifies plants from photos, helps users organize and monitor their virtual garden, and provides personalized care recommendations based on each plant's specific needs and local weather conditions.
17
+
18
+ ## Context
19
+
20
+ This project was originally made for my father, a passionate botany enthusiast who cares for a wide variety of plants. As his collection grew, keeping track of each plant’s specific needsβ€”especially watering schedulesβ€”became increasingly challenging.
21
+
22
+ Guarden was created to simplify plant care by bringing all of a user's plants together in a single, intuitive application. The app helps users identify their plants, organize them in a virtual garden, access species-specific information, and receive personalized watering recommendations based on local weather conditions.
23
+
24
+ Our goal is to make plant care more accessible, accurate, and enjoyable for both experienced gardeners and beginners alike.
25
 
26
  ### Team :
27
  [AntoineR974](https://huggingface.co/AntoineR974) and [Crocolil](https://huggingface.co/Crocolil)
28
 
29
  ## Description
30
 
31
+ Guarden helps users build and manage a virtual garden. Simply upload a picture of a plant, and the application identifies the species using a computer vision model trained on plant datasets. Once identified, the plant is added to the user's virtual garden, where they can view plant information, care requirements, and daily watering recommendations based on the weather forecast.
32
 
33
  The application combines:
34
 
 
43
  * 🌿 Virtual garden management
44
  * 🌀 7-day weather forecast
45
  * πŸ’§ Daily watering recommendations
46
+ * πŸ€–πŸŒΏAI Plant care assistant
47
  * πŸ“Š Plant care information dashboard
48
 
49
  ## Demo Video
app.py CHANGED
@@ -34,7 +34,6 @@ from modules import advisor
34
  from utils.geo import city_to_coordinates
35
 
36
  # ── Config ─────────────────────────────────────────────────────────────────────
37
- WEATHER_API_KEY = os.getenv("WEATHER_API_KEY", "") # OpenWeatherMap key
38
  WEATHER_CITY = os.getenv("WEATHER_CITY", "Marseille")
39
  DATA_ROOT = Path("user_data") # per-user gardens & photos live here
40
  DATA_ROOT.mkdir(exist_ok=True)
@@ -159,7 +158,7 @@ def load_garden(user_id: str) -> list[dict]:
159
  "nickname": "Example Fig Tree",
160
  "photo": "plant_photos\\Example_Fig_Tree.jpg",
161
  "genus": "Ficus",
162
- "confidence": 87.0,
163
  "added": datetime.date.today().isoformat(),
164
  "last_watered": None,
165
  "rained": False,
@@ -167,7 +166,7 @@ def load_garden(user_id: str) -> list[dict]:
167
  "sunlight": "full sunlight",
168
  "soil": "sandy",
169
  "fertilization_type": "Balanced",
170
- "notes": "Fig Tree care info. Replace with real data."
171
  }]
172
 
173
  garden_file = _garden_file(user_id)
@@ -482,7 +481,7 @@ with gr.Blocks(title="🌿 Plant Watering Planner") as app:
482
 
483
  # ── Header bar ───────────────────────────────────────────────────────────
484
  with gr.Row(elem_id="header-bar"):
485
- gr.Markdown("# 🌱 Guarden\nKeep every plant happy β€” your garden, watered on time.")
486
  add_plant_btn = gr.Button("βž• Add a plant", elem_id="add-plant-fab", variant="primary")
487
 
488
  # ── Add-plant drawer (slide-in overlay, hidden until the FAB is clicked) ──
@@ -529,7 +528,7 @@ with gr.Blocks(title="🌿 Plant Watering Planner") as app:
529
 
530
  # Ask-the-assistant panel β€” hidden until a plant is selected
531
  with gr.Group(visible=False) as advisor_panel:
532
- advisor_question = gr.Textbox(label="Ask about this plant", placeholder="e.g. Why are the leaves turning yellow?")
533
  advisor_ask_btn = gr.Button("πŸ€– Ask the assistant")
534
  advisor_answer = gr.Markdown()
535
 
 
34
  from utils.geo import city_to_coordinates
35
 
36
  # ── Config ─────────────────────────────────────────────────────────────────────
 
37
  WEATHER_CITY = os.getenv("WEATHER_CITY", "Marseille")
38
  DATA_ROOT = Path("user_data") # per-user gardens & photos live here
39
  DATA_ROOT.mkdir(exist_ok=True)
 
158
  "nickname": "Example Fig Tree",
159
  "photo": "plant_photos\\Example_Fig_Tree.jpg",
160
  "genus": "Ficus",
161
+ "confidence": ,
162
  "added": datetime.date.today().isoformat(),
163
  "last_watered": None,
164
  "rained": False,
 
166
  "sunlight": "full sunlight",
167
  "soil": "sandy",
168
  "fertilization_type": "Balanced",
169
+ "notes": ""
170
  }]
171
 
172
  garden_file = _garden_file(user_id)
 
481
 
482
  # ── Header bar ───────────────────────────────────────────────────────────
483
  with gr.Row(elem_id="header-bar"):
484
+ gr.Markdown("# 🌱 Guarden\nKeep every plant happy : your garden, watered on time.")
485
  add_plant_btn = gr.Button("βž• Add a plant", elem_id="add-plant-fab", variant="primary")
486
 
487
  # ── Add-plant drawer (slide-in overlay, hidden until the FAB is clicked) ──
 
528
 
529
  # Ask-the-assistant panel β€” hidden until a plant is selected
530
  with gr.Group(visible=False) as advisor_panel:
531
+ advisor_question = gr.Textbox(label="Ask about this plant πŸ§‘β€πŸŒΎ", placeholder="e.g. Why are the leaves turning yellow?")
532
  advisor_ask_btn = gr.Button("πŸ€– Ask the assistant")
533
  advisor_answer = gr.Markdown()
534