conservation-chatbot
Version:
An interactive AI chatbot that creates meaningful connections between visitors and endangered animals. Perfect for conservation organizations, NGOs, and environmental education.
1,083 lines (920 loc) • 27 kB
Markdown
# NGO Setup Guide - Conservation Chatbot
**Complete setup guide for NGOs and conservation organizations**
## Quick Start (3 Lines of Code!)
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Organization Name',
animals: 'Giant Panda, Bengal Tiger'
});
```
## Prerequisites
1. **Get a Gemini API Key**:
- Go to [Google AI Studio](https://makersuite.google.com/app/apikey)
- Create a new API key
- Copy the key (starts with `AIzaSy...`)
2. **Install the Library**:
```bash
npm install conservation-chatbot
```
## Basic Setup
### Step 1: Import the Library
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
```
### Step 2: Initialize with Your Organization
```javascript
const chatbot = initConservationChatbot({
apiKey: 'AIzaSy...', // Your Gemini API key
organization: 'Your Organization', // Your organization name
organizationType: 'wildlife' // Type of conservation work
});
```
### Step 3: That's It!
The chatbot will appear as a floating button in the bottom-right corner of your website.
## Animal Selection
### Option 1: Simple String Selection
```javascript
// Just specify the animals you want
animals: 'Giant Panda, Bengal Tiger, African Elephant'
```
### Option 2: All Animals
```javascript
// Don't specify animals to use all 25+ animals
animals: undefined // or omit this line
```
### Available Animals by Conservation Focus
#### **Global Wildlife Conservation**
- **Raja** (Bengal Tiger) - Endangered
- **Nuru** (African Elephant) - Endangered
- **Mei** (Giant Panda) - Vulnerable
- **Zola** (Black Rhino) - Critically Endangered
#### **Marine Conservation**
- **Shelly** (Sea Turtle) - Endangered
- **Luna** (Vaquita) - Critically Endangered
- **Kai** (Blue Whale) - Endangered
- **Marina** (Bottlenose Dolphin) - Least Concern
- **Finn** (Great White Shark) - Vulnerable
#### **Forest Conservation**
- **Kibo** (Mountain Gorilla) - Endangered
- **Bima** (Bornean Orangutan) - Critically Endangered
- **Luna** (Three-toed Sloth) - Least Concern
- **Shadow** (Jaguar) - Near Threatened
- **Rio** (Keel-billed Toucan) - Least Concern
#### **Climate Conservation**
- **Tula** (Polar Bear) - Vulnerable
- **Waddles** (Emperor Penguin) - Near Threatened
- **Blubber** (Harp Seal) - Least Concern
#### **Bird Conservation**
- **Freedom** (Bald Eagle) - Least Concern
- **Hoot** (Snowy Owl) - Vulnerable
- **Pink** (Greater Flamingo) - Least Concern
#### **Primate Conservation**
- **Zazu** (Ring-tailed Lemur) - Endangered
- **Koko** (Chimpanzee) - Endangered
#### **Big Cat Conservation**
- **Simba** (African Lion) - Vulnerable
- **Spot** (African Leopard) - Vulnerable
- **Swift** (Cheetah) - Vulnerable
#### **Marine Mammal Conservation**
- **River** (Sea Otter) - Endangered
- **Gentle** (West Indian Manatee) - Vulnerable
## Organization Types
The chatbot will tailor responses based on your organization type:
### `wildlife`
- Focuses on wildlife conservation
- Anti-poaching efforts
- Habitat protection
- Species recovery programs
### `marine`
- Ocean conservation
- Marine life protection
- Plastic pollution awareness
- Sustainable fishing
### `forest`
- Forest conservation
- Deforestation prevention
- Biodiversity protection
- Sustainable forestry
### `climate`
- Climate change awareness
- Carbon emissions reduction
- Environmental activism
- Renewable energy advocacy
### `general`
- General environmental conservation
- Mixed conservation efforts
- Educational outreach
## Organization-Specific Examples
### Example 1: Wildlife Conservation NGO
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Wildlife Organization',
organizationType: 'wildlife',
animals: 'Bengal Tiger, African Elephant, Mountain Gorilla',
styles: {
colors: {
primary: '#8B4513',
secondary: '#A0522D',
accent: '#D2691E'
},
fonts: {
family: 'Arial, sans-serif'
},
borderRadius: {
large: '25px'
}
}
});
```
### Example 2: Marine Conservation Organization
```javascript
import { initConservationChatbot, themePresets } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Marine Organization',
organizationType: 'marine',
animals: 'Sea Turtle, Vaquita, Blue Whale',
styles: themePresets.ocean
});
```
### Example 3: Forest Conservation Organization
```javascript
import { initConservationChatbot, themePresets } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Forest Organization',
organizationType: 'forest',
animals: 'Bornean Orangutan, Mountain Gorilla, Jaguar',
styles: themePresets.nature
});
```
### Example 4: Climate Conservation Organization
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Climate Organization',
organizationType: 'climate',
animals: 'Polar Bear, Emperor Penguin, Harp Seal',
styles: {
colors: {
primary: '#2E8B57',
secondary: '#3CB371',
accent: '#90EE90'
}
}
});
```
### Example 5: Bird Conservation Organization
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Bird Conservation Organization',
organizationType: 'wildlife',
animals: 'Bald Eagle, Snowy Owl, Greater Flamingo',
styles: {
colors: {
primary: '#8B4513',
secondary: '#DAA520',
accent: '#FFD700'
}
}
});
```
### Example 6: Primate Conservation Organization
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Primate Conservation Organization',
organizationType: 'forest',
animals: 'Mountain Gorilla, Bornean Orangutan, Ring-tailed Lemur, Chimpanzee',
styles: {
colors: {
primary: '#228B22',
secondary: '#32CD32',
accent: '#90EE90'
}
}
});
```
### Example 7: Big Cat Conservation Organization
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Big Cat Conservation Organization',
organizationType: 'wildlife',
animals: 'Bengal Tiger, African Lion, African Leopard, Cheetah',
styles: {
colors: {
primary: '#FF8C00',
secondary: '#FFA500',
accent: '#FFD700'
}
}
});
```
### Example 8: Marine Mammal Conservation Organization
```javascript
import { initConservationChatbot, themePresets } from 'conservation-chatbot';
const chatbot = initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Marine Mammal Organization',
organizationType: 'marine',
animals: 'Blue Whale, Bottlenose Dolphin, Sea Otter, West Indian Manatee',
styles: themePresets.ocean
});
```
## Advanced Customization
### Custom Animals
```javascript
import { createAnimal } from 'conservation-chatbot/animals';
const customAnimals = [
createAnimal({
id: 'local-wolf',
name: 'Shadow',
species: 'Gray Wolf',
conservationStatus: 'Endangered',
location: 'Yellowstone',
photo: '/images/wolf.jpg',
label: 'Gray Wolf',
system: "You are a gray wolf. Speak with pack mentality...",
intro: "Howl! I'm Shadow, a gray wolf...",
color: 'bg-gray-600'
})
];
const chatbot = initConservationChatbot({
apiKey: 'your-api-key',
organization: 'Your Org',
animals: customAnimals
});
```
### Dynamic Updates
```javascript
const chatbot = initConservationChatbot({
apiKey: 'your-api-key',
organization: 'Your Org'
});
// Add a new animal later
chatbot.addAnimal(newAnimal);
// Update styles
chatbot.updateStyles({
colors: { primary: '#ff0000' }
});
```
## Integration Examples
### HTML Page
```html
<!DOCTYPE html>
<html>
<head>
<title>Our Conservation Site</title>
</head>
<body>
<h1>Welcome to Our Conservation Organization</h1>
<script type="module">
import { initConservationChatbot } from 'conservation-chatbot';
initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Your Organization',
organizationType: 'wildlife',
animals: 'Bengal Tiger, Giant Panda'
});
</script>
</body>
</html>
```
### React Component
```jsx
import { useEffect } from 'react';
import { initConservationChatbot } from 'conservation-chatbot';
function ConservationPage() {
useEffect(() => {
const chatbot = initConservationChatbot({
apiKey: process.env.REACT_APP_GEMINI_API_KEY,
organization: 'Your Organization',
organizationType: 'marine',
animals: 'Sea Turtle, Vaquita'
});
}, []);
return <div>Your conservation content</div>;
}
```
### WordPress
```php
// Add to your theme's footer.php or via plugin
wp_enqueue_script('conservation-chatbot', 'path/to/conservation-chatbot.js');
// In your template
<script>
document.addEventListener('DOMContentLoaded', function() {
// Initialize chatbot
initConservationChatbot({
apiKey: '<?php echo get_option("gemini_api_key"); ?>',
organization: '<?php echo get_bloginfo("name"); ?>',
organizationType: 'wildlife',
animals: 'Bengal Tiger, Giant Panda'
});
});
</script>
```
### Vue.js Component
```vue
<template>
<div>
<h1>Conservation Page</h1>
</div>
</template>
<script>
import { initConservationChatbot } from 'conservation-chatbot';
export default {
name: 'ConservationPage',
mounted() {
initConservationChatbot({
apiKey: process.env.VUE_APP_GEMINI_API_KEY,
organization: 'Your Organization',
organizationType: 'forest',
animals: 'Bornean Orangutan, Mountain Gorilla'
});
}
}
</script>
```
## Security Best Practices
### Development
```javascript
apiKey: 'AIzaSy...' // Direct API key (OK for development)
```
### Production
```javascript
apiKey: process.env.GEMINI_API_KEY // Environment variable (recommended)
```
### Server-Side Proxy (Most Secure)
```javascript
// Frontend
apiKey: '/api/chat' // Proxy endpoint
// Backend (Node.js example)
app.post('/api/chat', async (req, res) => {
const response = await fetch('https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent', {
headers: {
'Authorization': `Bearer ${process.env.GEMINI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(req.body)
});
res.json(await response.json());
});
```
## Performance Optimization
### Lazy Loading
```javascript
// Load chatbot only when needed
document.addEventListener('scroll', function() {
if (window.scrollY > 500 && !window.chatbotLoaded) {
import('conservation-chatbot').then(({ initConservationChatbot }) => {
initConservationChatbot(config);
window.chatbotLoaded = true;
});
}
});
```
### Conditional Loading
```javascript
// Only load on specific pages
if (window.location.pathname.includes('/conservation')) {
import('conservation-chatbot').then(({ initConservationChatbot }) => {
initConservationChatbot(config);
});
}
```
## Troubleshooting
### Common Issues
1. **Chatbot doesn't appear**:
- Check browser console for errors
- Verify API key is correct
- Ensure animals are specified correctly
2. **API errors**:
- Check your Gemini API key
- Verify you have API quota
- Check network connectivity
3. **Styling not working**:
- Check CSS syntax
- Verify style object structure
- Try theme presets first
4. **Animals not showing**:
- Check animal names match exactly
- Verify animal IDs are correct
- Check for typos in animal selection
### Debug Mode
```javascript
const chatbot = initConservationChatbot({
apiKey: 'your-key',
organization: 'Your Org',
animals: 'Bengal Tiger, Giant Panda',
options: {
debug: true // Enable debug logging
}
});
```
## Monitoring & Analytics
### Track Engagement
```javascript
const chatbot = initConservationChatbot({
apiKey: 'your-key',
organization: 'Your Org',
animals: 'Bengal Tiger, Giant Panda',
options: {
onMessage: (message) => {
// Track user interactions
analytics.track('chatbot_message', {
animal: message.animal,
message: message.text
});
}
}
});
```
### Monitor Performance
```javascript
// Track chatbot performance
const startTime = Date.now();
const chatbot = initConservationChatbot(config);
chatbot.onLoad = () => {
const loadTime = Date.now() - startTime;
analytics.track('chatbot_load_time', { loadTime });
};
```
## Support & Resources
- **[GitHub Issues](https://github.com/majidsafwaan2/conservation-chatbot/issues)** - Report bugs and request features
- **[API Documentation](https://github.com/majidsafwaan2/conservation-chatbot/blob/main/docs/API.md)** - Complete API reference
- **[Customization Guide](https://github.com/majidsafwaan2/conservation-chatbot/blob/main/docs/CUSTOMIZATION.md)** - Advanced styling options
- **[Examples](https://github.com/majidsafwaan2/conservation-chatbot/tree/main/examples)** - Working examples and demos
## Next Steps
1. **Choose your animals** based on your conservation focus
2. **Customize the styling** to match your brand
3. **Test thoroughly** on your website
4. **Monitor engagement** and adjust as needed
5. **Share your success** with the conservation community
**Ready to make a difference? Start connecting visitors with endangered animals today!**
## Configuration Options
### Organization Context
```javascript
{
organization: 'Wildlife Conservation Society',
organizationType: 'wildlife',
organizationContext: 'We focus on protecting endangered species through habitat preservation and anti-poaching efforts.'
}
```
### Animal Selection
```javascript
// Use specific animals
animals: 'Bengal Tiger, African Elephant, Mountain Gorilla'
// Use all animals from a conservation focus
animals: 'wildlife' // or 'marine', 'forest', 'climate', 'bird', 'primate', 'big-cat', 'marine-mammal'
// Use all animals
animals: 'all'
```
### Custom Animals
```javascript
import { createAnimal } from 'conservation-chatbot/animals';
const customAnimals = [
createAnimal({
id: 'local-wolf',
name: 'Shadow',
species: 'Gray Wolf',
conservationStatus: 'Endangered',
location: 'Yellowstone',
photo: '/images/wolf.jpg',
label: 'Wolf',
system: "You are a gray wolf...",
intro: "Howl! I'm Shadow...",
color: 'bg-gray-600'
})
];
initConservationChatbot({
apiKey: 'your-api-key',
organization: 'Your Org',
animals: customAnimals
});
```
## Customizing Animal Photos
### Default Photos
The library comes with high-quality animal photos from Unsplash. These are automatically used for all animals unless custom photos are provided.
### Custom Photos for NGOs
NGOs can provide their own photos for each animal to showcase their specific animals or branding:
```javascript
import { createAnimal } from 'conservation-chatbot/animals';
const customAnimals = [
createAnimal({
id: 'tiger',
name: 'Raja',
species: 'Bengal Tiger',
conservationStatus: 'Endangered',
location: 'Sundarbans',
photo: '/images/animals/raja-tiger.jpg', // Your organization's photo
label: 'Bengal Tiger',
system: "You are a Bengal tiger...",
intro: "Rawrr... I'm Raja...",
color: 'bg-orange-500'
}),
createAnimal({
id: 'elephant',
name: 'Nuru',
species: 'African Elephant',
conservationStatus: 'Endangered',
location: 'Savannah',
photo: 'https://your-org.com/images/nuru-elephant.jpg', // External URL
label: 'African Elephant',
system: "You are an African elephant...",
intro: "Pwaaah... I'm Nuru...",
color: 'bg-gray-600'
})
];
```
### Photo Requirements
- **Format**: JPG, PNG, or WebP
- **Size**: Recommended 100x100px minimum (will be automatically resized)
- **Aspect Ratio**: Square (1:1) works best
- **Quality**: High resolution for crisp display
- **Content**: Clear, professional animal photos
### Photo Sources
- Your organization's own photography
- Licensed stock photos
- Photos from your conservation partners
- Photos from your sanctuary or zoo
### Example Implementation
```javascript
// Complete example with custom photos
const zooAnimals = [
createAnimal({
id: 'tiger',
name: 'Raja',
species: 'Bengal Tiger',
photo: '/assets/animals/raja-tiger.jpg', // Your zoo's tiger photo
// ... other properties
}),
createAnimal({
id: 'elephant',
name: 'Nuru',
species: 'African Elephant',
photo: '/assets/animals/nuru-elephant.jpg', // Your zoo's elephant photo
// ... other properties
})
];
initConservationChatbot({
apiKey: 'your-api-key',
organization: 'City Zoo Conservation',
organizationType: 'wildlife',
animals: zooAnimals,
styles: {
colors: {
primary: '#2d5016',
secondary: '#4a7c59'
}
}
});
```
## Styling Customization
### Colors
```javascript
styles: {
colors: {
primary: '#2d5016', // Main color
secondary: '#4a7c59', // Secondary color
accent: '#8bc34a', // Accent color
background: 'rgba(255,255,255,0.2)',
text: '#333',
textLight: 'white'
}
}
```
### Fonts
```javascript
styles: {
fonts: {
family: 'Georgia, serif',
size: {
small: '13px',
medium: '14px',
large: '16px'
}
}
}
```
### Corner Sharpness
```javascript
styles: {
borderRadius: {
small: '6px',
medium: '12px',
large: '18px',
round: '50%'
}
}
```
### Pre-built Themes
```javascript
import { themePresets } from 'conservation-chatbot';
styles: themePresets.nature // or 'dark', 'light', 'ocean'
```
## Organization Types
### Wildlife Conservation
```javascript
organizationType: 'wildlife'
// Includes: Bengal Tiger, African Elephant, Giant Panda, Black Rhino
```
### Marine Conservation
```javascript
organizationType: 'marine'
// Includes: Sea Turtle, Vaquita, Blue Whale, Bottlenose Dolphin, Great White Shark
```
### Forest Conservation
```javascript
organizationType: 'forest'
// Includes: Mountain Gorilla, Bornean Orangutan, Three-toed Sloth, Jaguar, Keel-billed Toucan
```
### Climate Conservation
```javascript
organizationType: 'climate'
// Includes: Polar Bear, Emperor Penguin, Harp Seal
```
### Bird Conservation
```javascript
organizationType: 'bird'
// Includes: Bald Eagle, Snowy Owl, Greater Flamingo
```
### Primate Conservation
```javascript
organizationType: 'primate'
// Includes: Ring-tailed Lemur, Chimpanzee
```
### Big Cat Conservation
```javascript
organizationType: 'big-cat'
// Includes: African Lion, African Leopard, Cheetah
```
### Marine Mammal Conservation
```javascript
organizationType: 'marine-mammal'
// Includes: Sea Otter, West Indian Manatee
```
## Complete Examples
### Wildlife Sanctuary
```javascript
import { initConservationChatbot } from 'conservation-chatbot';
initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Wildlife Sanctuary',
organizationType: 'wildlife',
organizationContext: 'We rescue and rehabilitate injured wildlife, focusing on big cats and elephants.',
animals: 'Bengal Tiger, African Elephant, Mountain Gorilla',
styles: {
colors: {
primary: '#8B4513',
secondary: '#A0522D',
accent: '#D2691E'
}
}
});
```
### Marine Conservation NGO
```javascript
initConservationChatbot({
apiKey: 'your-gemini-api-key',
organization: 'Ocean Protectors',
organizationType: 'marine',
organizationContext: 'We work to protect marine ecosystems and endangered sea life through research and advocacy.',
animals: 'Sea Turtle, Blue Whale, Vaquita',
styles: themePresets.ocean
});
```
### Zoo with Custom Animals
```javascript
import { createAnimal } from 'conservation-chatbot/animals';
const zooAnimals = [
createAnimal({
id: 'local-tiger',
name: 'Raja',
species: 'Bengal Tiger',
photo: '/images/animals/raja-tiger.jpg',
// ... other properties
})
];
initConservationChatbot({
apiKey: 'your-api-key',
organization: 'City Zoo',
animals: zooAnimals
});
```
## API Key Setup
1. Get a Google Gemini API key from [Google AI Studio](https://makersuite.google.com/app/apikey)
2. Add the key to your configuration
3. The chatbot will automatically handle AI conversations
## Best Practices
1. **Start Simple**: Begin with default animals and styling
2. **Test Thoroughly**: Ensure your API key works and responses are appropriate
3. **Customize Gradually**: Add custom animals and styling as needed
4. **Monitor Usage**: Track API usage and costs
5. **Update Regularly**: Keep animal information current
## Support
- [GitHub Repository](https://github.com/majidsafwaan2/conservation-chatbot)
- [API Documentation](https://github.com/majidsafwaan2/conservation-chatbot/blob/main/docs/API.md)
- [Customization Guide](https://github.com/majidsafwaan2/conservation-chatbot/blob/main/docs/CUSTOMIZATION.md)
## Adding Your Own Animal Photos
### Step 1: Create an Images Folder
First, create a folder in your project to store your animal photos:
```bash
# Create an images folder in your project
mkdir images
mkdir images/animals
```
**Folder Structure:**
```
your-project/
├── images/
│ └── animals/
│ ├── raja-tiger.jpg
│ ├── nuru-elephant.jpg
│ ├── mei-panda.jpg
│ └── ...
├── index.html
└── script.js
```
### Step 2: Add Your Animal Photos
Place your animal photos in the `images/animals/` folder. Use descriptive names:
**Recommended File Names:**
- `raja-tiger.jpg` (for Raja the Bengal Tiger)
- `nuru-elephant.jpg` (for Nuru the African Elephant)
- `mei-panda.jpg` (for Mei the Giant Panda)
- `shelly-turtle.jpg` (for Shelly the Sea Turtle)
- `kibo-gorilla.jpg` (for Kibo the Mountain Gorilla)
### Step 3: Update Your Code
Replace the default placeholder images with your own photos:
```javascript
import { createAnimal } from 'conservation-chatbot/animals';
// Create custom animals with your own photos
const customAnimals = [
createAnimal({
id: 'tiger',
name: 'Raja',
species: 'Bengal Tiger',
conservationStatus: 'Endangered',
location: 'Sundarbans',
photo: '/images/animals/raja-tiger.jpg', // Your photo path
label: 'Bengal Tiger',
system: "You are a Bengal tiger...",
intro: "Rawrr... I'm Raja...",
color: 'bg-orange-500'
}),
createAnimal({
id: 'elephant',
name: 'Nuru',
species: 'African Elephant',
conservationStatus: 'Endangered',
location: 'Savannah',
photo: '/images/animals/nuru-elephant.jpg', // Your photo path
label: 'African Elephant',
system: "You are an African elephant...",
intro: "Pwaaah... I'm Nuru...",
color: 'bg-gray-600'
}),
createAnimal({
id: 'panda',
name: 'Mei',
species: 'Giant Panda',
conservationStatus: 'Vulnerable',
location: 'Sichuan',
photo: '/images/animals/mei-panda.jpg', // Your photo path
label: 'Giant Panda',
system: "You are a giant panda...",
intro: "Mmmmph... I'm Mei...",
color: 'bg-black'
})
];
// Initialize with your custom animals
initConservationChatbot({
apiKey: 'your-api-key',
organization: 'Your Conservation Organization',
animals: customAnimals
});
```
### Step 4: Alternative - Use External URLs
If you prefer to host images externally (e.g., on your website or CDN):
```javascript
const customAnimals = [
createAnimal({
id: 'tiger',
name: 'Raja',
species: 'Bengal Tiger',
photo: 'https://your-website.com/images/animals/raja-tiger.jpg',
// ... other properties
}),
createAnimal({
id: 'elephant',
name: 'Nuru',
species: 'African Elephant',
photo: 'https://your-website.com/images/animals/nuru-elephant.jpg',
// ... other properties
})
];
```
### Photo Requirements
**Format:** JPG, PNG, or WebP
**Size:** 100x100px minimum (will be automatically resized)
**Aspect Ratio:** Square (1:1) works best
**Quality:** High resolution for crisp display
**Content:** Clear, professional animal photos
### Complete Example with All Animals
```javascript
import { createAnimal } from 'conservation-chatbot/animals';
const allCustomAnimals = [
// Global Wildlife Conservation
createAnimal({
id: 'tiger',
name: 'Raja',
species: 'Bengal Tiger',
photo: '/images/animals/raja-tiger.jpg',
// ... other properties
}),
createAnimal({
id: 'elephant',
name: 'Nuru',
species: 'African Elephant',
photo: '/images/animals/nuru-elephant.jpg',
// ... other properties
}),
createAnimal({
id: 'panda',
name: 'Mei',
species: 'Giant Panda',
photo: '/images/animals/mei-panda.jpg',
// ... other properties
}),
createAnimal({
id: 'rhino',
name: 'Zola',
species: 'Black Rhino',
photo: '/images/animals/zola-rhino.jpg',
// ... other properties
}),
// Marine Conservation
createAnimal({
id: 'turtle',
name: 'Shelly',
species: 'Sea Turtle',
photo: '/images/animals/shelly-turtle.jpg',
// ... other properties
}),
createAnimal({
id: 'whale',
name: 'Kai',
species: 'Blue Whale',
photo: '/images/animals/kai-whale.jpg',
// ... other properties
}),
// Forest Conservation
createAnimal({
id: 'gorilla',
name: 'Kibo',
species: 'Mountain Gorilla',
photo: '/images/animals/kibo-gorilla.jpg',
// ... other properties
}),
createAnimal({
id: 'orangutan',
name: 'Bima',
species: 'Bornean Orangutan',
photo: '/images/animals/bima-orangutan.jpg',
// ... other properties
}),
// Add more animals as needed...
];
initConservationChatbot({
apiKey: 'your-api-key',
organization: 'Your Organization',
animals: allCustomAnimals
});
```
### Tips for Great Animal Photos
1. **Use High-Quality Images:** Clear, well-lit photos work best
2. **Square Format:** Crop images to 1:1 aspect ratio for best results
3. **Consistent Style:** Use similar lighting and background for all photos
4. **Professional Look:** Avoid blurry or low-resolution images
5. **Animal Focus:** Make sure the animal is clearly visible and centered
### Testing Your Photos
After adding your photos, test them by:
1. Opening your website in a browser
2. Clicking the chatbot launcher
3. Checking that all animal photos display correctly
4. Testing the dropdown to switch between animals
If photos don't load, check:
- File paths are correct
- File names match exactly (case-sensitive)
- Images are in the right format (JPG, PNG, WebP)
- Web server is serving the images correctly