A modern React-based web application that connects gardeners and plant enthusiasts, allowing them to share gardening tips, explore fellow gardeners, and build a thriving plant community.
- User Authentication: Secure sign-up, sign-in, and password recovery
- Garden Tips Sharing: Create, edit, and manage your gardening tips
- Community Exploration: Browse and discover fellow gardeners
- Interactive Map: Visual representation of active gardeners
- Responsive Design: Optimized for all devices
- Modern UI/UX: Clean, intuitive interface with Tailwind CSS
- Real-time Notifications: Toast notifications for user feedback
- Loading States: Smooth loading experiences with skeleton screens
- Error Handling: Comprehensive error management and 404 pages
- Firebase Integration: Secure authentication and data management
- Protected Routes: Private route implementation for authenticated users
- Optimized Loading: Data fetching with React Router loaders
- SEO Friendly: Proper meta tags and document titles
- React 19 - Latest React with modern features
- React Router DOM 7 - Client-side routing
- Tailwind CSS 4 - Utility-first CSS framework
- Vite - Fast build tool and development server
- Lucide React - Beautiful icons
- React Icons - Icon library
- React Slick - Carousel component
- React Toastify - Toast notifications
- SweetAlert2 - Beautiful alerts
- React Tooltip - Tooltip components
- @vis.gl/react-google-maps - Google Maps integration
- React Simple Typewriter - Typewriter effect
- ESLint - Code linting
- TypeScript Support - Type definitions for React
-
Clone the repository
git clone <repository-url> cd Leafy-client
-
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory and add your Firebase configuration:VITE_FIREBASE_API_KEY=your_api_key VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
src/
βββ components/ # Reusable UI components
β βββ common/ # Shared components (Navbar, Footer, etc.)
β βββ gardeners/ # Gardener-related components
β βββ home/ # Home page components
β βββ tip/ # Tip-related components
βββ context/ # React Context providers
βββ hooks/ # Custom React hooks
βββ layouts/ # Layout components
βββ pages/ # Page components
βββ Private/ # Private route components
βββ routes/ # Routing configuration
βββ services/ # External services (Firebase config)
- Firebase Authentication integration
- Email/password authentication
- Password recovery functionality
- Protected routes for authenticated users
- Create and share gardening tips
- Edit and update existing tips
- View personal tip collection
- Public tip browsing
- Explore fellow gardeners
- Interactive Google Maps integration
- Active gardeners showcase
- User profiles and connections
- Responsive design with Tailwind CSS
- Smooth animations and transitions
- Loading states and error handling
- Toast notifications for user feedback
- Create a Firebase project
- Enable Authentication (Email/Password)
- Set up Firestore Database
- Add your Firebase config to environment variables
- Obtain Google Maps API key
- Enable Maps JavaScript API
- Add API key to environment variables
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- 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.
- React - A JavaScript library for building user interfaces
- Tailwind CSS - A utility-first CSS framework
- Firebase - Backend-as-a-Service platform
- Vite - Next generation frontend tooling
Built with β€οΈ for the gardening community
Connect with fellow gardeners, share your knowledge, and grow together! π±