A sustainable planting and ecological awareness platform for Australian gardening enthusiasts. The project was delivered over three iterations: onboarding & plant search, disease identification & climate-fit recommendations, endangered species & climate-trend visualizations, plus community connection features.
π Website URL: https://www.plantx.me/
π δΈζηREADME: README.zh.md
π Product Document: Product_Document.pdf
π Support Document: Support_Document.pdf
π Maintenance Document: Maintenance_Document.pdf
This platform provides evidence-based and accessible sustainable gardening guidance for Australian gardeners. It helps users make better planting decisions under climate change and understand how personal gardening practices connect to broader environmental and climate goals (SDG 13). Features, data, and system architecture are refined across three iterations.
Core problem (excerpt): Climate change makes rainfall and temperature more volatile, and many gardeners lack clear, practical guidance. Key strategies include choosing climate-appropriate species, efficient water use, improving soil, and supporting biodiversity. The platform offers tools and resources to reduce trial-and-error costs and boost confidence in sustainable practices.
Target users: Australian gardeners (from beginners to advanced users, home or community gardens) who want localized, reliable, and easy-to-understand guidance for environmentally friendly planting.
Persona (example): Sarah Green, 46, librarian in Caulfield, Victoria. She cares about the environment but struggles with disease identification, climate-matched plant selection, and accessing trustworthy biodiversity data. The platform helps via AI disease recognition, location- & weather-based recommendations, and visualizing ecological data.
The main Epics and key user stories/acceptance criteria by iteration are summarized below for a quick understanding of project evolution.
-
Epic 1 | Vision & Onboarding:
- A homepage clearly communicates the mission, core features, and sustainable gardening βknowledge cardsβ; mobile-friendly.
- Key user stories:
- US 1.1/1.2/1.3: View intro & feature cards; click βLearn moreβ to see simple sustainable practice examples (e.g., local natives, water-saving).
-
Epic 2 | Plant Exploration & Details:
- Multimodal search: keyword, voice, and photo matching.
- Details page with care icons/tips and expandable sections to lower the learning curve for beginners.
-
Epic 3 | Plant Disease Recognition & Interpretation:
- Disease search (by name or uploading an image for likely matches).
- Disease details include overview/symptoms/solutions.
- AI predictions return Top-3 probabilities with links to details.
-
Epic 4 | Location & Weather-Based Plant Recommendations:
- Pick a coordinate on the map β call weather API to aggregate next 16 days of key variables (temperature, rainfall, sunshine, UV, precipitation probability, etc.).
- Compare the weather summary against plant growth conditions to generate an adaptation list; click a plant card to view description/features/care guide.
-
Epic 5 | Nearby Plants & Trees (Urban Biodiversity):
- Interactive map shows species density/distribution in the selected area.
- Search by species name and highlight occurrence regions/coordinates to support local ecological literacy.
-
Epic 6 | Australian Threatened Plants Distribution:
- Filter by state and display threatened plant markers on the map.
- Right-side list is linked to the map; clicking a card opens species info.
-
Epic 7 | Climate Trends vs. Threatened Plants:
- A time slider drives a choropleth map to compare interannual state-level spatial patterns.
- State-level trend lines jointly visualize the species index and temperature/other weather variables over time.
-
Epic 8 | Community & Plant Clubs:
- List club names/contacts/meeting cadence.
- Filter by region/state.
- A βTodayβs Meetingsβ panel automatically shows clubs with activities today (or βNoneβ if no events).
Note: Detailed user stories and acceptance criteria for each Epic are documented in the iteration documents; this README provides a showcase-oriented summary.
- Cloud & Services: AWS (API Gateway, Lambda, S3, CloudFront, RDS/KMS/Secrets Manager)
- AI/ML: Image-based disease recognition with Top-K probability visualization
- Visualization: Interactive maps (distribution, choropleth with time slider), linked cards & trend charts
- Usability: Mobile-friendly; icons/tips and expandable sections to ease onboarding
Iteration 1 (baseline plants & environment):
- Melbourne Planting Guide (traits/growth conditions/biodiversity, CSV)
- Kaggle (gardening images, JPEG/PNG)
- ALA species list (CSV)
- Vic Future Climate Tool (API)
Iteration 2 (disease/weather/urban forestry):
- Perenual API (disease descriptions/solutions & images) β training/retrieval
- Open-Meteo (16-day forecast, API) β climate-fit recommendations
- City of Melbourne Urban Forest (CSV) β urban species map
- The Australian Threatened Species Index (CSV) β enrich sustainable-practice content
Iteration 3 (threatened/historical climate/boundaries/clubs):
- Perenual + City of Melbourne (general + threatened plants, API/HTML β CSV)
- Open-Meteo historical weather (API)
- ABS state boundaries (SHP)
- Garden Clubs of Australia (CSV)
Note: Each dataset is annotated in the docs with its Epic/user-story usage. Production tables and light preprocessing outputs are standardized to CSV for frontend/backend and visualization.
-
Architecture evolution:
- Iteration 1: Frontendβbackend connected via API Gateway; algorithms and database on private networks; the backend performs more computation.
- Iteration 2: Shift to API-centric and serverless design: API Gateway + AWS Lambda for algorithms; frontend static assets and objects (e.g., disease images) in S3, accelerated by CloudFront; database hardened with Secrets Manager/KMS; APIs connect directly with Lambda/S3 to optimize data flow.
-
Security strategy:
- Iteration 1: Perimeter-focused (VPC, subnets, port allowlists, etc.).
- Iteration 2: API-level security: API Gateway rate limiting/quotas, usage plans, API keys; AWS Shield (Standard/Advanced) for DDoS mitigation.
- Rationale: Once APIs are exposed externally, the primary risks shift from perimeter threats to interface abuse and denial of service, requiring API-side mitigations.
- Team: Spaghetti Marshmallow King (ID TA21)
- Members (example): Zihan Yin, Yiyang Chen, Klarissa Jutivannadevi, Yu Xie, Yean Yee Tan, Weiqi Xie
- Disciplines & responsibilities:
- MDS: Open data processing (rainfall/temperature/species), modeling & analysis; actionable insights (e.g., native weather-resilient plants)
- MIT: Architecture & full-stack development, testing & version control, feature integration (search, water-saving tips, community, etc.)
- MAI: AI models (disease recognition, climate-matched plant selection), AI ethics (bias/privacy)
- MBIS: Iteration planning, persona/journey design, project governance (minutes, docs, supervisor comms)
- v1: Vision & basic retrieval (Iteration 1)
- v2: Disease recognition / weather-fit recommendations / urban ecology (Iteration 2)
- v3: Threatened distribution / climateβspecies trends / community (Iteration 3)
π¦2025-08-SDG13-PLANT-X-WEBSITE
ββ π.vscode
β ββ extensions.json
β ββ settings.json
β
ββ π01_data_wrangling βΆ Raw datasets, cleaned outputs & processing scripts
β ββ π01_raw_data
β β ββ π01_species_details βΆ Species detail JSON (large, numeric filenames)
β β ββ π02_care_guide βΆ Species care guide JSON (large)
β β ββ π03_hardiness_map βΆ Species hardiness/distribution HTML (large)
β β ββ π04_plant_diseases βΆ Disease JSON (1β100+)
β β ββ π05_thumbnail_image βΆ Species thumbnails JPG (large)
β β ββ π06_tsx_table_vic βΆ State/national TSX CSV raw tables
β β ββ 01_threatened-plant-living-collection-plan.csv
β β ββ 02_tsx-aggregated-data-dataset_for_vic_plants.csv
β β ββ 03_TSX 2024 Data Dictionary.pdf
β β ββ 04_urban-forest.csv
β β ββ 05_STE_2021_AUST_SHP_GDA2020.zip βΆ Geospatial boundary data
β β ββ 06_tsx-aggregated-data-dataset_for_aus_plants.csv
β ββ π02_wrangled_data βΆ Cleaned master tables (for FE/BE/models)
β β ββ Table01_PlantMainTable.csv
β β ββ Table02_GeneralPlantDescriptionTable.csv
β β ββ Table03_GeneralPlantCareGuideTable.csv
β β ββ Table04_GeneralPlantDistributionMapTable.csv
β β ββ Table05_GeneralPlantImageTable.csv
β β ββ Table06_ThreatenedPlantDescriptionTable.csv
β β ββ Table07_ThreatenedPlantCareGuideTable.csv
β β ββ Table09_PlantDiseaseTable.csv
β β ββ Table10_PlantDiseaseImageTable.csv
β β ββ Table11_PlantDiseaseLinkTable.csv
β β ββ Table12_UrbanForestTable.csv
β β ββ Table13_GeneralPlantListforRecommendation.csv
β β ββ Table14_TSX_Table_VIC_version{1..4}.csv βΆ TSX state-level aggregated versions
β β ββ Table15_StateShapeTable.csv
β β ββ Table16_TSX_SpeciesMonitoringTable.csv
β β ββ Table17_AustralianGardenClubTable.csv
β ββ .cache.sqlite βΆ Cache for downloads/cleaning
β ββ 01_download_plant_species_details_data.ipynb βΆ Download species details
β ββ 02_download_plant_species_care_guide_data.ipynb βΆ Download species care guides
β ββ 03_download_plant_species_hardiness_map.ipynb βΆ Download hardiness/distribution maps
β ββ 04_download_plant_disease_data.ipynb βΆ Download plant disease data
β ββ 05_wrangle_for_Table06_Table07.ipynb βΆ Clean Tables 06 & 07 (threatened species desc/care)
β ββ 06_wrangle_for_Table01_PlantMainTable.ipynb βΆ Clean Table 01 (plant main)
β ββ 07_wrangle_for_Table02_GeneralPlantDescriptionTable.ipynb βΆ Clean Table 02 (general description)
β ββ 08_wrangle_for_Table03_GeneralPlantCareGuideTable.ipynb βΆ Clean Table 03 (general care)
β ββ 09_wrangle_for_Table04_GeneralPlantDistributionMapTable.ipynb βΆ Clean Table 04 (distribution map)
β ββ 10_wrangle_for_Table05_GeneralPlantImageTable.ipynb βΆ Clean Table 05 (images)
β ββ 11_wrangle_for_Table09_Table10.ipynb βΆ Clean Tables 09 & 10 (diseases & images)
β ββ 12_wrangle_for_Table11_PlantDiseaseLinkTable.ipynb βΆ Clean Table 11 (external links)
β ββ 13_wrangle_for_Table12_UrbanForestTable.ipynb βΆ Clean Table 12 (urban forest)
β ββ 14_wrangle_for_Table13_GeneralPlantListforRecommendation.ipynbβΆ Clean Table 13 (rec list)
β ββ 15_wrangle_for_Table14_ThreatenedSpeciesIndexTable.ipynb βΆ Clean Table 14 (threatened species index)
β ββ 16_wrangle_for_Table14_TSX_Table_VIC.ipynb βΆ Clean Table 14 (VIC TSX version)
β ββ 17_wrangle_for_Table15_StateShapeTable.ipynb βΆ Clean Table 15 (state shapes)
β ββ 18_wrangle_for_Table16_TSX_SpeciesMonitoringTable.ipynb βΆ Clean Table 16 (species monitoring)
β ββ 19_wrangle_for_Table17_AustralianGardenClubTable.ipynb βΆ Clean Table 17 (AU garden clubs)
β
ββ π02_backend βΆ Shared utilities & (Lambda) backend code
β ββ πcommon
β β ββ config.py / db_utils.py / http_utils.py / s3_utils.py βΆ Base utilities
β β ββ index.py / __init__.py
β ββ πlambdas
β ββ πassets
β β ββ app.py βΆ Lambda entry for static assets/files
β β ββ requirements.txt
β ββ πgardening_clubs
β ββ πcommon (same structure) βΆ Backend shared code for garden clubs
β
ββ π03_machine_learning_models
β ββ π01_plant_image_recognition βΆ Plant image retrieval/recognition (CLIP)
β β ββ πclip-vit-b32 βΆ Tokenizer/preprocess configs
β β ββ πindex (embeddings_fp16.npz, meta.json)βΆ Prebuilt index
β β ββ πtest_images βΆ Sample test images
β β ββ 01_plant_image_embedding.ipynb βΆ Embedding
β β ββ 02_plant_image_query.{ipynb,py} βΆ Similarity search/query
β β ββ requirements.txt
β ββ π02_plant_disease_recognition βΆ Disease classification (PyTorch)
β β ββ πtest_images βΆ Sample test images
β β ββ model.pth βΆ Trained weights
β β ββ 01_plant_disease_training.ipynb βΆ Training script
β β ββ 02_plant_disease_query.{ipynb,py} βΆ Inference scripts
β β ββ Dockerfile / lambda_function.py βΆ Deployment (container & serverless)
β β ββ class_map.json / Table11_*.csv βΆ Class mapping & link tables
β β ββ requirements.txt / kaggle.json βΆ Dependencies & data credentials
β ββ π03_plant_recommendation_system
β β ββ 01_plant_recommendation.{ipynb,py} βΆ Recommendations based on Table 13
β β ββ Table13.csv
β ββ π04_tsx_trend_prediction βΆ TSX trends/visualization/backend integration
β β ββ 01_tsx_trend_prediction.ipynb
β β ββ 02_upload_table14_to_mysql.ipynb βΆ Data ingest
β β ββ 03_epic7_backend_local.ipynb
β β ββ 04_epic7_backend_{local,sql}.py βΆ Local/SQL backends
β β ββ Table14_TSX_Table_VIC_version{3,4}.csv
β β ββ Table15_StateShapeTable.csv
β ββ π05_ml_workflow_description βΆ ML workflow docs (EN/ZH + images)
β ββ πimages (2_01.png, 4_01~4_08.png)
β ββ 01_plant_image_recognition_{en,zh}.{md,pdf}
β ββ 02_plant_disease_recognition_{en,zh}.{md,pdf}
β ββ 03,04_*_{en,zh}.{md,pdf}
β
ββ πpublic
β ββ weblogo.svg
β
ββ πsrc βΆ Frontend (Vue + Vite)
β ββ πapi
β β ββ http.ts βΆ Axios/request wrapper
β β ββ plants.ts / plantrcmd.js βΆ Plant list & recommendation APIs
β β ββ pdisease.js / DiseaseUpload.js βΆ Disease search/upload
β β ββ climateimpact.js βΆ Climate impact/TSX
β β ββ tpmap.js / trees.js βΆ Distribution/tree data APIs
β β ββ uploads.ts βΆ Generic upload
β ββ πassets βΆ Static images/styles (many)
β β ββ styles.css / logo.svg / β¦ βΆ Key assets
β ββ πcomponents
β β ββ πicons (Icon*.vue) βΆ Reusable icon components
β β ββ NavBar.vue / FooterBar.vue βΆ Global nav/footer
β β ββ ThemeToggle.vue βΆ Theme switch
β β ββ PlantCard.vue / PdiseaseCard.vue βΆ List cards
β β ββ CardSkeleton.vue βΆ Skeleton loader
β ββ πrouter/Router.js βΆ Routes
β ββ πviews βΆ Pages
β β ββ HomePage.vue βΆ Home
β β ββ PlantSearch.vue / PlantDetail.vue
β β ββ PlantRcmd.vue βΆ Plant recommendations
β β ββ DiseaseSearch.vue / DiseaseDetail.vue
β β ββ UrbanMap.vue / UrbanThreaten.vue βΆ Urban forest/threatened views
β β ββ TPmapping.vue βΆ Species distribution (hardiness/map)
β β ββ ClimateImpact.vue βΆ TSX/trend impact
β β ββ CommunityPage.vue / GardenPage.vue
β ββ App.vue / main.js βΆ App entry
β ββ env.d.ts βΆ TS env declarations
β ββ vite.config.js βΆ Frontend build config
β
ββ .editorconfig / .env / .gitattributes / .gitignore / .prettierrc.json
ββ dist.zip βΆ Build artifacts (snapshot)
ββ eslint.config.js / jsconfig.json / tsconfig.json
ββ index.html βΆ App template
ββ package.json / package-lock.json βΆ Dependencies & scripts
ββ README.md
ββ vite.config.js βΆ Root build config (same name as in src)
Distributed under the MIT License.
This project is part of Monash Universityβs FIT5120 Industry Experience Studio Project, Semester 2, 2025;
Delivered via an agile, open process across three iterations.