A smart assistant to help you care for your plants with ease and intelligence.
Sprouty is a full-stack MERN web application that helps users manage their real-life plants by providing care reminders, growth tracking, plant identification, and disease diagnosis. Whether you're a beginner plant parent or a green-thumb enthusiast, this app is your personal assistant for a greener lifestyle.
- Smart Identification: Add plants via image-based identification using Plant.ID API
- Manual Entry: Add plants through text search or manual entry
- Plant Gallery: View all your plants with thumbnails, care status, and quick actions
- Care History: Track watering, fertilizing, pruning, and other care activities
- Smart Scheduling: Set customizable recurring reminders for plant care
- Multi-type Notifications: Get notified for watering, fertilizing, and pruning
- Due Reminders Dashboard: View upcoming plant care tasks
- Disease Diagnosis: Identify plant diseases and get treatment recommendations
- Health Tracking: Monitor plant health status and history
- Care Recommendations: Get personalized care tips based on plant species
- Weather Monitoring: Get real-time weather data for your location
- Weather-based Recommendations: Adjust plant care based on local weather conditions
- Location Search: Find and save your location for accurate weather data
- User Profiles: Manage your account details and preferences
- Dark Mode Support: Toggle between light and dark themes for comfortable viewing
- Responsive Design: Optimized for mobile, tablet, and desktop devices
Main dashboard showing plant overview, weather information, and upcoming care reminders
Your personal plant collection with care status indicators and quick actions
Smart plant identification using camera or uploaded images
Upcoming care tasks and reminder management interface
Disease diagnosis and health monitoring for your plants
Real-time weather data with plant care recommendations
Detailed plant information, care history, and health tracking
Clean dark theme for comfortable nighttime viewing
- Framework: React.js
- Styling: Tailwind CSS
- Icons: Lucide React
- State Management: React Context API
- Routing: React Router
- HTTP Client: Axios
- Camera Integration: React Webcam
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT, Google OAuth
- File Handling: Multer
- Scheduled Tasks: Node-Cron
- Plant Identification: Plant.ID API
- Weather Data: OpenWeatherMap API
/Frontend
βββ /public # Static files
βββ /src
β βββ /assets # Images, icons, and other static assets
β βββ /components # Reusable UI components
β βββ /contexts # Context providers (auth, notifications, theme)
β βββ /pages # Main page components
β βββ /services # API service modules
β βββ /utils # Helper functions
βββ index.html # Entry HTML file
βββ tailwind.config.js # Tailwind CSS configuration
βββ package.json # Dependencies and scripts
/Backend
βββ /config # Configuration files and environment setup
βββ /controllers # Request handlers
βββ /middleware # Custom middleware (auth, error handling)
βββ /models # Database schemas
βββ /routes # API routes
βββ /services # External services (email, cron jobs, etc.)
βββ /utils # Utility functions
βββ server.js # Entry point
βββ package.json # Dependencies and scripts
- Node.js (v14+)
- MongoDB (local or Atlas)
- API keys for Plant.ID and OpenWeatherMap
# Navigate to frontend directory
cd Frontend
# Install dependencies
npm install
# Create .env file with necessary variables
# Example:
# VITE_API_URL=http://localhost:5000/api
# VITE_GOOGLE_CLIENT_ID=your_google_client_id
# Start development server
npm run dev# Navigate to backend directory
cd Backend
# Install dependencies
npm install
# Create .env file with necessary variables
# Example:
# PORT=5000
# MONGODB_URI=mongodb://localhost:27017/sprouty
# JWT_SECRET=your_secret_key
# PLANT_ID_API_KEY=your_plant_id_api_key
# WEATHER_API_KEY=your_openweathermap_api_key
# Start development server
npm run devVITE_API_URL=http://localhost:5000/api
VITE_GOOGLE_CLIENT_ID=your_google_client_id
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/sprouty
JWT_SECRET=your_jwt_secret
JWT_EXPIRE=30d
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
PLANT_ID_API_KEY=your_plant_id_api_key
WEATHER_API_KEY=your_openweathermap_api_key
POST /api/auth/register- Register a new userPOST /api/auth/login- Login userGET /api/auth/me- Get current user
GET /api/plants- Get all user plantsPOST /api/plants- Create a new plantGET /api/plants/:id- Get a specific plantPUT /api/plants/:id- Update a plantDELETE /api/plants/:id- Delete a plantPOST /api/plants/identify- Identify plant from image
GET /api/reminders- Get all remindersPOST /api/reminders- Create a reminderGET /api/reminders/upcoming- Get upcoming remindersPUT /api/reminders/:id/complete- Mark reminder as completed
GET /api/weather- Get current weatherGET /api/weather/recommendations- Get weather-based recommendations
GET /api/users/profile- Get user profilePUT /api/users/profile- Update user profilePUT /api/users/password- Update password
The frontend is deployed on Vercel. Live Link: https://frontend-sprouty.vercel.app/
The backend is deployed on Render. API Base URL: https://sprouty-backend.onrender.com/api
Detailed API testing commands are available in the postman_tests.md file in the Backend directory.
MIT License. See LICENSE for more details.
- Plant.ID for plant identification services
- OpenWeatherMap for weather data
- Lucide Icons for the beautiful icons
- Tailwind CSS for styling utilities








