Dr. Broto is your friendly apartment plant consultant! Upload a photo of your plant and get instant analysis, care tips, and disease detection powered by AI.
dr-broto/
│
├── backend/ # Node.js Express API (image analysis, AI integration)
│ ├── src/ # Source code
│ └── .env # Environment variables
│
├── front/ # React + TypeScript + Vite frontend
│ ├── src/ # Source code
│ │ ├── assets/ # Static assets
│ │ ├── components/ # React components
│ │ └── services/ # API services
│ └── .env # Environment variables
│
├── .vs/ # Visual Studio workspace files
├── package.json # Root scripts (dev, etc.)
└── README.md # You are here!
- Node.js (v18+ recommended)
- npm
- Google Gemini API key
git clone https://github.com/henriquespecian/dr-broto.git
cd dr-broto
npm install && npm install --prefix backend && npm install --prefix front
-
Backend:
Createbackend/.env
and add your Google Gemini API key:GEMINI_API_KEY=your_google_gemini_api_key
-
Frontend:
Already set to use the local backend infront/.env
:VITE_API_URL=http://localhost:3001
From the project root:
npm run dev
- Frontend: http://localhost:5173
- Backend: http://localhost:3001
- 📸 Upload photos of your plants
- 🤖 AI-powered plant identification
- 🌿 Detailed care instructions
- 🦠 Disease and deficiency detection
- 💧 Watering and sunlight recommendations
- 📱 Responsive, user-friendly interface
- 🎨 Modern, clean design with animations
- React 19
- TypeScript
- Vite
- CSS3 with modern features
- react-markdown for formatted responses
- Custom hooks and services
- Node.js
- Express
- Multer for file uploads
- @google/genai for AI integration
- Environment-based configuration
- Google Gemini API
- Custom prompt engineering
- Image analysis capabilities
- ESLint with recommended and React rules
- TypeScript strict mode
- Prettier for code formatting
- Hot reload with Vite
- Component-based architecture
- Service layer for API communication
- Asset management
- Environment configuration
For type-aware lint rules, update your ESLint config as follows:
export default tseslint.config({
extends: [
...tseslint.configs.recommendedTypeChecked,
// ...tseslint.configs.strictTypeChecked,
// ...tseslint.configs.stylisticTypeChecked,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
})
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat: add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
Created for plant lovers who want to keep their apartment greenery healthy and happy! Dr. Broto combines the power of AI with a friendly interface to make plant care accessible to everyone.