Live URL: PlantCare Hub Live Demo
PlantCareHub is a comprehensive plant care application designed to help users manage their plant collections, access care tips, and utilize tools for optimal plant health. The project is divided into two main components: the Client (frontend) and the Server (backend).
- Smart Plant Management - Add, update, delete, and track all your plants in one organized dashboard
- Intelligent Watering Reminders - Never miss a watering session with personalized scheduling and notifications
- Advanced Care Tracking - Monitor plant health, growth progress, and care history with detailed analytics
- Expert Care Guides - Access professional plant care tips, seasonal advice, and troubleshooting guides
- Community Platform - Share experiences, discover new plants, and learn from fellow plant enthusiasts
- Responsive Design - Seamless experience across desktop, tablet, and mobile devices with dark/light theme support
- React 18 - Modern React with hooks and functional components
- React Router - Client-side routing and navigation
- Tailwind CSS - Utility-first CSS framework for responsive design
- Swiper.js - Modern touch slider for hero sections
- React Icons - Comprehensive icon library
- SweetAlert2 - Beautiful, responsive popup notifications
- Axios - HTTP client for API communication
- Express.js - RESTful API server
- Firebase Authentication - Secure user authentication with Google OAuth
- MongoDB - NoSQL database for plant data storage
- Jsonwebtoken - JWT-based session management
- Cors - Cross-origin resource sharing
- Dotenv - Environment variable management
- Node.js (v18+)
- Firebase project with Authentication and Firestore enabled
- MongoDB database
- Vercel CLI for deployment
- Navigate to the client directory:
cd PlantCareHub-Client - Install dependencies:
npm install
- Configure environment variables:
- Create
.envfile with:VITE_API_URL=http://localhost:5000 VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain VITE_FIREBASE_PROJECT_ID=your_firebase_project_id VITE_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id VITE_FIREBASE_APP_ID=your_firebase_app_id
- Create
- Run development server:
npm run dev
- Navigate to the server directory:
cd PlantCareHub-Server - Install dependencies:
npm install
- Configure environment variables:
- Create
.envfile with:FIREBASE_SERVICE_ACCOUNT_JSON=your_json PORT=3000
- Create
- Start the server:
npm start
| Route | Description | Access Level |
|---|---|---|
/ |
Home page with hero slider and featured content | Public |
/plants |
All plants with sorting and filtering | Public |
/plants/:id |
Detailed plant information page | Private |
/my-plants |
User's personal plant collection | Private |
/add-plant |
Add new plant form | Private |
/update-plant/:id |
Edit existing plant information | Private |
/login |
User authentication page | Public |
/register |
User registration page | Public |
* |
Custom 404 error page | Public |
- React Context API for global state (authentication, theme)
- Local State with React hooks for component-specific data
- Persistent Storage for user preferences and session data
- RESTful API communication with error handling
- Real-time Data updates with optimistic UI patterns
- Secure Authentication with JWT tokens and Firebase integration
- Code Splitting for faster initial load times
- Image Optimization with proper sizing and lazy loading
- Bundle Optimization with Vite build tools
- Caching Strategies for API responses and static assets
- Responsive Design - Mobile, tablet, and desktop optimized
- Plant Care Theme - Comprehensive plant management focus
- Authentication - Email/password + Google OAuth
- CRUD Operations - Complete plant management system
- Private Routes - Protected pages with proper redirects
- Sorting Functionality - Advanced table sorting capabilities
- Dark/Light Theme - Complete theme switching system
- Modern UI - Professional design with animations
- Error Handling - User-friendly error messages
- Loading States - Professional loading indicators
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/your-feature-name
- Open a Pull Request
MIT License. See LICENSE for details.
Jashedul Islam Shaun
- GitHub: @shauncuier
- Email: hello@jashedulislamshaun.com
- Portfolio: Jashedul Islam Shaun
Built with ❤️ for plant lovers worldwide 🌿