Transform your black thumb into a green one with intelligent plant monitoring, proactive care recommendations, and personalized schedules that adapt to your plants' unique needs.
β
Firebase Authentication (Google Sign-In)
β
Cloud Firestore Database (Real-time sync)
β
Firebase Storage (File uploads)
β
Production Ready (Security & documentation)
β Architecture Documentation
Most plant care apps are glorified reminders that treat every plant the same. Flourish is different.
We've built an AI agent that actually understands your plants - monitoring their health, predicting problems before they happen, and creating dynamic care schedules that evolve based on how your plants respond. No more guesswork, no more dead plants.
π§ Intelligent Monitoring
Our AI continuously analyzes your plants' health metrics and environmental conditions, spotting issues before they become problems.
πΈ Multi-Modal Analysis
Take a photo of your plant and get instant health assessments, disease identification, and personalized care recommendations.
π― Adaptive Scheduling
Care plans that learn and adjust based on your plants' actual responses - not generic timers that ignore reality.
π¬ Expert AI Assistant
Chat with our plant care expert AI for instant answers about watering, lighting, diseases, and more.
π Garden Dashboard
Beautiful visualizations of your garden's overall health with actionable insights and progress tracking.
- β Generic watering reminders every 3 days
- β Guessing what's wrong when plants look sick
- β One-size-fits-all care instructions
- β Learning about problems too late
- β Smart schedules that adapt to each plant's needs
- β AI-powered health analysis from photos
- β Personalized care plans that evolve over time
- β Proactive alerts before problems develop
Flourish features a beautiful, cheerful design that makes plant care feel delightful rather than daunting. Our custom color palette and intuitive interface create a welcoming experience that encourages consistent care.
Core Features:
- π± Plant Health Tracking - Monitor growth, watering needs, and overall wellness
- π AI-Generated Schedules - Dynamic care plans that adapt to plant responses
- π Image Analysis - Instant plant health assessment from photos
- π‘ Smart Insights - Proactive recommendations to optimize plant health
- π Progress Tracking - Visualize your garden's health trends over time
Flourish is built with modern, reliable technologies to ensure fast performance and seamless user experience:
Frontend: React 18 + TypeScript + Vite for lightning-fast development and optimized builds
UI/UX: Tailwind CSS + shadcn/ui components with custom Flourish design system
Backend: FastAPI (Python) with clean architecture and type-safe data models
AI Integration: Groq language models for advanced plant care intelligence
Authentication: Firebase Auth with Google OAuth for secure, hassle-free sign-in
State Management: React Query for efficient server state and caching
Development: Turborepo monorepo with optimized build pipelines
- Python 3.9+ - Download
- Node.js 18+ - Download
- Firebase Account - Project:
flourish-de908(already configured)
# Using batch file (recommended)
start.bat
# Or using PowerShell
.\start.ps1This automated script will:
- β Check all dependencies
- β Install missing packages
- β Start backend API on port 8000
- β Start frontend on port 5173
- β Open the app in your browser
Development (runs both services):
npm run dev # Start both API and web in watch mode
npm run dev:api # Start API only (port 8000)
npm run dev:web # Start web only (port 5173)Production:
npm run build # Build both services
npm run build:api # Build API Docker image
npm run build:web # Build web for production
npm start # Start both services in production modeTesting:
npm test # Run all tests (frontend + backend)
npm run test:api # Run backend tests (pytest)
npm run test:web # Run frontend tests (vitest)
npm run test:watch # Run frontend tests in watch mode
npm run test:ui # Open vitest UIMaintenance:
npm run lint # Lint all workspaces
npm run clean # Clean all build artifacts
npm run install:all # Install all dependencies
npm run typecheck # TypeScript type checkingAccess:
- π Frontend: http://localhost:5173
- βοΈ Backend: http://localhost:8000
- π API Docs: http://localhost:8000/docs
Backend:
cd apps/api
pip install -r requirements.txt
python -m uvicorn main:app --reloadFrontend:
cd apps/web
npm install
npm run dev-
Firebase Configuration
- Service account key is already configured at
apps/api/firebase-service-account.json - Environment variables are set in
.envfiles
- Service account key is already configured at
-
Sign In
- Go to http://localhost:5173
- Click "Sign in with Google"
- Start managing your plants! π±
-
Optional: AI Features
- Install Ollama for local AI
- Run:
ollama pull llama3 - Or use Groq API (add
GROQ_API_KEYtoapps/api/.env)
Flourish/
βββ apps/
β βββ api/ # Backend (FastAPI + Python)
β β βββ api/
β β β βββ core/ # Auth & config
β β β βββ db/ # Firestore & Storage
β β β βββ routes/ # API endpoints
β β β βββ services/ # Business logic
β β βββ main.py # API entry point
β β βββ requirements.txt # Python dependencies
β βββ web/ # Frontend (React + TypeScript)
β βββ src/
β β βββ components/ # React components
β β βββ hooks/ # Custom hooks (useAuth)
β β βββ lib/ # Firebase & utilities
β β βββ pages/ # App pages
β β βββ integrations/ # API client
β βββ package.json # Node dependencies
βββ ARCHITECTURE.md # System architecture docs
βββ README.md # This file
βββ start.ps1 # Development start script
This project uses Firebase for all backend services:
- Google Sign-In provider
- JWT token-based API security
- Automatic session management
- profiles - User profiles & gamification
- plants - Plant inventory
- care_tasks - Scheduled tasks
- notifications - Real-time alerts
- health_checks - Plant health tracking
- Plant images:
users/{userId}/plants/{plantId}/ - Documents:
users/{userId}/documents/ - Profile photos:
users/{userId}/profile/
Firebase Console: https://console.firebase.google.com/project/flourish-de908
Ready to transform your plant care experience?
Start your journey with Flourish today. πΏβ¨