PlantPal is a web-based application that helps users identify common houseplants and provides detailed care instructions. The application focuses on 50-100 common houseplants with comprehensive care tips.
-
Plant Identification: Search for plants by name, scientific name, or description
-
Detailed Care Information: Each plant comes with specific care instructions including:
- Light requirements
- Watering schedule
- Soil type recommendations
- Humidity needs
- Temperature preferences
- Fertilizing guidelines
- Difficulty level
- Toxicity information
-
Filtering System: Find plants that match your specific needs:
- Light conditions (low light, bright indirect, direct sun)
- Experience level (beginner, intermediate, advanced)
- Pet friendliness (toxic vs non-toxic)
-
Categorized Browsing: Browse plants by categories such as:
- Low Light
- Pet Friendly
- Air Purifying
- Drought Tolerant
- And more
- Backend: Python with Flask framework
- Database: PostgreSQL
- ORM: SQLAlchemy
- Frontend: HTML, CSS, JavaScript
- CSS Framework: Bootstrap (Replit dark theme)
- Icons: Font Awesome
- Python 3.11
- PostgreSQL database
- Clone the repository:
git clone <repository-url>
- Install the required dependencies:
pip install -r requirements.txt
- Set up the environment variables:
DATABASE_URL=postgresql://<username>:<password>@<host>:<port>/<database>
SESSION_SECRET=<your-secret-key>
- Initialize the database with seed data:
python seed_data.py
- Run the application:
python main.py
The application will be available at http://localhost:5000
.
The application uses two main models:
-
Plant: Stores information about individual plants
- Basic details (name, scientific name, description, image URL)
- Care information (light, water, soil, etc.)
- Difficulty and toxicity
-
Category: Represents plant categories
- Name and description
- Many-to-many relationship with plants
app.py
: Flask application configurationmain.py
: Application entry pointmodels.py
: Database models (Plant, Category)routes.py
: Route definitions for all pagesseed_data.py
: Script to populate the database with initial plant datastatic/
: Static assets (CSS, JavaScript, images)templates/
: HTML templates for all pages
- User accounts for saving favorite plants
- Plant problem diagnosis
- Watering reminder functionality
- Plant growth tracking
- Community plant care tips
- Image-based plant identification
This project is licensed under the MIT License - see the LICENSE file for details.