A React-based web application that helps residents find native plants from nearby nurseries using the Plant Agents Collective API.
- Location-based Search: Search for nurseries by ZIP code with radius or by state abbreviation
- Interactive Plant Table:
- Sort by any column (scientific name, common name, nursery, state, etc.)
- Mark plants as favorites with heart icons (β€οΈ)
- Visual indicators for "All Native" nurseries (π±)
- Hover highlights for better readability
- Export Options:
- π Copy favorites list to clipboard (grouped by vendor)
- π¨ Export entire table to PDF (landscape format)
- Responsive Design: Works on desktop and mobile devices
- Docker and Docker Compose installed on your system
- Start the application:
docker compose up -d --build- Open your browser and navigate to:
http://localhost:3000
- To stop the application:
docker compose down-
By ZIP Code:
- Enter a 5-digit ZIP code
- Select a radius (10, 25, 50, 100, or 200 miles)
- Click "Search for Plants"
-
By State:
- Switch to "Search by State" mode
- Enter a 2-letter state abbreviation (e.g., PA, NY, CA)
- Click "Search for Plants"
- Click the heart icon (π€) to add a plant to your favorites
- Favorited plants show a red heart (β€οΈ) and have a light green background
- Sort by favorites to see all your selected plants at the top
- Copy to Clipboard: Click "π Copy My Plant List" to copy all favorited plants as a formatted text list
- Export to PDF: Click "π¨ Export to PDF" to download the entire table as a PDF file
The application uses the Plant Agents Collective API:
- Base URL:
https://app.plantagents.org - Authentication: Bearer token (configured in the application)
/
βββ src/
β βββ components/
β β βββ SearchForm.js # Location search interface
β β βββ PlantTable.js # Main plant display table
β β βββ ExportButtons.js # Export functionality
β βββ services/
β β βββ api.js # API integration
β βββ App.js # Main application component
β βββ index.js # React entry point
βββ public/
β βββ index.html # HTML template
βββ docker-compose.yml # Docker configuration
βββ Dockerfile # Container build instructions
βββ package.json # NPM dependencies
- React 18
- Axios for API calls
- html2pdf.js for PDF export
- Docker for containerization
- Application not loading: Ensure Docker is running and port 3000 is not in use
- API errors: Check the browser console for detailed error messages
- PDF export issues: Ensure you have a stable internet connection (html2pdf.js loads resources from CDN)
This project uses the Plant Agents Collective API. Please refer to their terms of service for usage guidelines.