An intelligent plant care companion that uses computer vision and AI to identify plant species, detect diseases, and provide personalized care recommendations.
Demo Video:
- π± Plant Disease Detection - AI-powered analysis using computer vision models
- π Species Identification - Botanical identification through PlantNet API integration
- π€ Smart Care Recommendations - Personalized advice generated by LLM
- π Health Tracking - Monitor plant health scores and trends over time
- π Plant Management - Add, edit, and organize your plant collection
- π Scan History - Track health changes with detailed scan records
- π Secure Authentication - AWS Cognito integration for user management
- π± Responsive Design - Works seamlessly on desktop and mobile devices
- React 18 with TypeScript
- Tailwind CSS for styling
- AWS Cognito for authentication
- Responsive PWA design
- FastAPI (Python) with async/await
- PostgreSQL database
- SQLAlchemy ORM with Alembic migrations
- JWT authentication middleware
- Hugging Face - Plant disease detection models
- PlantNet API - Botanical species identification
- OpenRouter + Gemma-3 - LLM for care recommendations
- AWS ECS - Containerized backend deployment
- AWS RDS - Managed PostgreSQL database
- AWS S3 - Static website hosting
- AWS ECR - Docker image registry
- GitHub Actions - CI/CD pipeline
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β React App ββββββ FastAPI API ββββββ PostgreSQL β
β (S3 Static) β β (ECS Docker) β β (RDS) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ
β AWS Cognito β β AI Services β
β Authentication β β β’ HuggingFace β
βββββββββββββββββββ β β’ PlantNet β
β β’ OpenRouter β
ββββββββββββββββββββ
- Node.js (v18+)
- Python (v3.9+)
- Docker
- AWS Account
- API Keys for HuggingFace, PlantNet, and OpenRouter
- Clone the repository
git clone https://github.com/itmesneha/PlantPal.git
cd PlantPal- Backend Setup
cd backend
cp .env.example .env
# Configure your environment variables in .env
# Install dependencies
pip install -r requirements.txt
# Run database migrations
python -m alembic upgrade head
# Start the server
python -m app.main- Frontend Setup
cd frontend
cp .env.example .env.local
# Configure your environment variables
# Install dependencies
npm install
# Start development server
npm startDATABASE_URL=postgresql://user:password@localhost:5432/plantpal
HF_TOKEN=your_huggingface_token
PLANTNET_API_KEY=your_plantnet_key
OPENROUTER_API_KEY=your_openrouter_key
<<<<<<< HEAD
CORS_ORIGINS=http://localhost:5000
=======
CORS_ORIGINS=http://localhost:6000
>>>>>>> ee985433741ae041d5f227ff7161889809705284REACT_APP_API_URL=http://localhost:8000
REACT_APP_AWS_REGION=your_aws_region
REACT_APP_USER_POOL_ID=your_cognito_user_pool_id
REACT_APP_USER_POOL_CLIENT_ID=your_cognito_client_id# Backend
cd backend
docker build -t plantpal-backend .
docker run -p 8000:8000 --env-file .env plantpal-backend
# Frontend (for production build)
cd frontend
npm run build
# Deploy build/ folder to S3 or static hosting serviceOnce the backend is running, visit:
- Interactive API Docs: http://localhost:8000/docs
- OpenAPI Spec: http://localhost:8000/openapi.json
POST /api/v1/scan- Scan plant for disease detectionGET /api/v1/plants- Get user's plant collectionPUT /api/v1/plants/{id}- Update plant informationGET /api/v1/scan/history/{plant_id}- Get scan history
Users
βββ id (UUID, Primary Key)
βββ cognito_user_id (String, Unique)
βββ email (String)
βββ name (String)
Plants
βββ id (UUID, Primary Key)
βββ user_id (Foreign Key)
βββ name (String)
βββ species (String)
βββ current_health_score (Float)
βββ plant_icon (String)
βββ timestamps
PlantScans
βββ id (UUID, Primary Key)
βββ user_id (Foreign Key)
βββ plant_id (Foreign Key, Nullable)
βββ health_score (Float)
βββ disease_detected (String, Nullable)
βββ care_notes (Text, Nullable)
βββ is_healthy (Boolean)
βββ scan_date (DateTime)- Backend: Deployed automatically via GitHub Actions to ECS
- Frontend: Build and deploy to S3 static hosting
- Database: Managed PostgreSQL on RDS
The CI/CD pipeline automatically:
- Builds Docker images
- Pushes to ECR
- Updates ECS services
- Runs database migrations
PlantPal/
βββ backend/
β βββ app/
β β βββ routers/ # API endpoints
β β βββ models.py # Database models
β β βββ schemas.py # Pydantic schemas
β β βββ main.py # FastAPI application
β βββ alembic/ # Database migrations
β βββ Dockerfile
βββ frontend/
β βββ src/
β β βββ components/ # React components
β β βββ services/ # API services
β β βββ assets/ # Static assets
β βββ package.json
βββ .github/workflows/ # CI/CD pipelines
# Backend tests
cd backend
python -m pytest
# Frontend tests
cd frontend
npm test- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Hugging Face for providing plant disease detection models
- PlantNet for botanical species identification API
- OpenRouter for LLM integration
- AWS for cloud infrastructure services
Sneha - GitHub
Project Link: https://github.com/itmesneha/PlantPal









