ICY is a comprehensive AI-powered platform that helps brands discover, analyze, and connect with relevant influencers across Instagram and YouTube. It leverages Google Gemini AI to provide intelligent insights, personalized outreach, and campaign management.
Features β’ Quick Start β’ Documentation β’ API Reference β’ Contributing
- Overview
- Features
- Technology Stack
- Project Structure
- Quick Start
- Configuration
- API Reference
- Frontend Features
- AI Capabilities
- Email Integration
- Testing
- Deployment
- Troubleshooting
- Documentation
- Contributing
- License
ICY (Influencer Connection Yield) is an end-to-end influencer marketing platform designed to streamline the entire influencer outreach workflow. From discovering the perfect influencers for your brand to sending personalized outreach campaigns and tracking performance analytics, ICY handles it all with the power of AI.
- π€ AI-Powered Analysis - Leverages Google Gemini Pro for intelligent profile analysis and content generation
- π Smart Matching - Advanced brand alignment scoring using keyword matching and niche analysis
- π§ Automated Outreach - Bulk email campaigns with personalized messaging
- π Campaign Analytics - Real-time tracking and performance insights
- π Secure Authentication - JWT-based authentication with session management
- β‘ Performance Optimized - Built-in caching, rate limiting, and performance monitoring
- Advanced Search - Filter influencers by platform, niche, follower count, engagement rate, and location
- Brand Alignment Scoring - AI-powered scoring based on keyword matching, follower ratios, and niche compatibility
- Bulk Analysis - Analyze multiple influencers simultaneously with detailed insights
- Real-time Dataset - Curated database of verified influencers with engagement metrics
| Feature | Description |
|---|---|
| Profile Analysis | Deep-dive analysis of influencer authenticity, engagement quality, and audience demographics |
| Smart Outreach | Generate personalized messages tailored to each influencer's style and your brand voice |
| Content Ideas | Get creative content suggestions for influencer collaborations based on campaign goals |
| Authenticity Check | Detect fake followers, engagement manipulation, and assess profile credibility |
| Campaign Strategy | AI recommendations for budget allocation, timeline, and influencer selection |
| Image Analysis | Brand safety checking and visual content compliance using Gemini Vision |
- Bulk Email Sending - Send personalized emails to multiple influencers with batch processing
- Rate Limiting - Built-in rate limiting to prevent email throttling (50 emails/minute)
- Delivery Tracking - Real-time tracking of email delivery status and analytics
- Email Templates - Create and manage reusable message templates with variables
- Campaign Logs - Detailed logs for debugging and audit purposes
- Campaign Performance - Track response rates, conversions, and ROI metrics
- Influencer Insights - View historical performance data and engagement trends
- Brand Health Metrics - Monitor brand alignment scores across campaigns
- Export Reports - Generate detailed reports for stakeholders
- Profile Setup - Configure your brand details, target audience, and preferences
- Niche Selection - Define your brand's categories and target influencer niches
- Content Guidelines - Set brand voice, tone, and content requirements
- Budget Configuration - Define influencer tier preferences based on budget
- Template Library - Pre-built templates for different collaboration types
- Custom Variables - Use placeholders for personalized messaging
- Tone Variations - Templates for formal, casual, and creative communications
- A/B Testing Support - Create multiple versions for testing
| Technology | Purpose |
|---|---|
| Node.js | Server runtime environment |
| Express.js | Web application framework |
| MongoDB | NoSQL database for data persistence |
| Nodemailer | Email sending with SMTP support |
| JWT | Secure authentication tokens |
| Google Gemini SDK | AI/ML capabilities |
| Technology | Purpose |
|---|---|
| HTML5/CSS3 | Structure and styling |
| Vanilla JavaScript | Interactive functionality |
| Custom UI Components | Unified dashboard and modals |
| Responsive Design | Mobile-friendly interface |
| Technology | Purpose |
|---|---|
| Docker | Containerization |
| Nginx | Reverse proxy and load balancing |
| PM2 | Process management |
| Jest | Testing framework |
RabittAIProject/
βββ src/ # Backend source code
β βββ config/ # Configuration files
β β βββ database.js # MongoDB connection setup
β β βββ dbInit.js # Database initialization
β β βββ systemTemplates.js # Default message templates
β βββ middleware/ # Express middleware
β β βββ aiMiddleware.js # AI request handling
β β βββ auth.js # Authentication middleware
β β βββ errorHandler.js # Error handling middleware
β β βββ validation.js # Input validation & rate limiting
β βββ models/ # Database models & schemas
β βββ routes/ # API route handlers
β β βββ aiRoutes.js # AI feature endpoints
β β βββ analytics.js # Analytics endpoints
β β βββ auth.js # Authentication endpoints
β β βββ brand.js # Brand profile endpoints
β β βββ campaigns.js # Campaign management endpoints
β β βββ influencers.js # Influencer data endpoints
β β βββ messageTemplates.js # Template management endpoints
β βββ services/ # Business logic services
β β βββ AuthService.js # Authentication logic
β β βββ BrandAlignmentService.js # Alignment scoring
β β βββ DatabaseService.js # Database operations
β β βββ EmailService.js # Email sending logic
β β βββ EmailIntegrationService.js # Advanced email features
β β βββ geminiService.js # Google Gemini AI integration
β β βββ InfluencerDataService.js # Influencer data management
β β βββ OptimizedDatabaseService.js # Performance-optimized queries
β β βββ PerformanceMonitoringService.js # System monitoring
β β βββ repositories.js # Data access layer
β βββ utils/ # Utility functions
β β βββ ErrorHandler.js # Enhanced error handling
β β βββ environmentValidator.js # Environment validation
β β βββ errors.js # Custom error classes
β βββ server.js # Main server entry point
βββ public/ # Frontend static files
β βββ css/ # Stylesheets
β β βββ styles.css # Main styles
β β βββ aiStyles.css # AI feature styles
β β βββ enhanced-ui.css # Enhanced UI components
β β βββ unifiedDashboard.css # Dashboard styles
β β βββ ... # Other stylesheets
β βββ js/ # JavaScript files
β β βββ app.js # Main application
β β βββ aiFeatures.js # AI feature handlers
β β βββ aiUI.js # AI UI components
β β βββ analytics.js # Analytics dashboard
β β βββ brand.js # Brand management
β β βββ campaignManager.js # Campaign management
β β βββ influencerDiscovery.js # Discovery interface
β β βββ unifiedDashboard.js # Unified AI dashboard
β β βββ ... # Other scripts
β βββ index.html # Main dashboard
β βββ analytics.html # Analytics page
β βββ campaigns.html # Campaigns page
β βββ templates.html # Templates page
βββ scripts/ # Utility scripts
β βββ build-css.js # CSS build script
β βββ build-js.js # JS build script
β βββ deploy.js # Deployment script
β βββ health-check.js # Health check utility
β βββ ... # Other scripts
βββ tests/ # Test files
β βββ api/ # API tests
β βββ integration/ # Integration tests
β βββ *.test.js # Unit tests
βββ docs/ # Documentation
β βββ api-documentation.md # API reference
β βββ brand-profile-setup.md # Brand setup guide
β βββ database-setup.md # Database configuration
β βββ email-outreach-setup.md # Email setup guide
β βββ user-guide.md # User manual
βββ .env.example # Environment variables template
βββ Dockerfile # Docker configuration
βββ docker-compose.yml # Docker Compose setup
βββ nginx.conf # Nginx configuration
βββ ecosystem.config.js # PM2 configuration
βββ package.json # Project dependencies
- Node.js 18.x or higher
- MongoDB 6.x or higher (local or Atlas)
- npm or yarn
- Google Gemini API Key (for AI features)
-
Clone the repository
git clone https://github.com/your-username/RabittAIProject.git cd RabittAIProject -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit
.envwith your configuration:# Database MONGODB_URI=mongodb://localhost:27017/icy_database # Server PORT=3000 NODE_ENV=development # Email (Mailtrap for testing) SMTP_HOST=sandbox.smtp.mailtrap.io SMTP_PORT=2525 SMTP_USER=your_mailtrap_username SMTP_PASS=your_mailtrap_password # AI (Google Gemini) GEMINI_API_KEY=your_gemini_api_key # Security JWT_SECRET=your_jwt_secret SESSION_SECRET=your_session_secret
-
Start MongoDB (if running locally)
mongod
-
Start the development server
npm run dev
-
Open the application Navigate to
http://localhost:3000in your browser.
| Variable | Required | Description | Default |
|---|---|---|---|
MONGODB_URI |
β | MongoDB connection string | - |
PORT |
β | Server port | 3000 |
NODE_ENV |
β | Environment mode | development |
GEMINI_API_KEY |
β* | Google Gemini API key | - |
SMTP_HOST |
β* | SMTP server host | - |
SMTP_PORT |
β* | SMTP server port | - |
SMTP_USER |
β* | SMTP username | - |
SMTP_PASS |
β* | SMTP password | - |
JWT_SECRET |
β | JWT signing secret | - |
SESSION_SECRET |
β | Session secret | - |
AI_RATE_LIMIT_REQUESTS |
β | AI requests per window | 10 |
AI_RATE_LIMIT_WINDOW_MS |
β | AI rate limit window | 60000 |
*Required for full functionality
The application validates environment configuration on startup and will indicate which features are available:
β
AI Features: Available
β
Email Services: Available
http://localhost:3000/api
| Method | Endpoint | Description |
|---|---|---|
POST |
/auth/login |
User login |
POST |
/auth/register |
User registration |
GET |
/auth/verify |
Verify JWT token |
| Method | Endpoint | Description |
|---|---|---|
GET |
/influencers |
Get all influencers with pagination |
GET |
/influencers/search |
Search influencers with filters |
GET |
/influencers/:id |
Get specific influencer |
POST |
/influencers/alignment |
Calculate brand alignment scores |
| Method | Endpoint | Description |
|---|---|---|
GET |
/brand/profile |
Get brand profile |
POST |
/brand/profile |
Create/update brand profile |
GET |
/brand/recommendations |
Get AI recommendations |
| Method | Endpoint | Description |
|---|---|---|
GET |
/campaigns |
Get all campaigns |
POST |
/campaigns |
Create new campaign |
GET |
/campaigns/:id |
Get campaign details |
PUT |
/campaigns/:id |
Update campaign |
DELETE |
/campaigns/:id |
Delete campaign |
POST |
/campaigns/:id/send |
Send campaign emails |
GET |
/campaigns/:id/status |
Get email delivery status |
| Method | Endpoint | Description |
|---|---|---|
POST |
/ai/analyze-profile |
Analyze influencer profile |
POST |
/ai/generate-outreach |
Generate outreach messages |
POST |
/ai/content-ideas |
Generate content ideas |
POST |
/ai/check-authenticity |
Check influencer authenticity |
POST |
/ai/match-influencers |
Smart influencer matching |
POST |
/ai/campaign-strategy |
Generate campaign strategy |
POST |
/ai/analyze-image |
Analyze image content |
POST |
/ai/enhanced-alignment |
AI-enhanced alignment scores |
POST |
/ai/bulk-analysis |
Bulk influencer analysis |
GET |
/ai/status |
Check AI service status |
| Method | Endpoint | Description |
|---|---|---|
GET |
/templates |
Get all templates |
POST |
/templates |
Create template |
PUT |
/templates/:id |
Update template |
DELETE |
/templates/:id |
Delete template |
| Method | Endpoint | Description |
|---|---|---|
GET |
/analytics/dashboard |
Get dashboard metrics |
GET |
/analytics/campaign/:id |
Get campaign analytics |
GET |
/analytics/performance |
Get performance metrics |
| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Basic health check |
GET |
/health/detailed |
Detailed system health |
For detailed API documentation, see docs/api-documentation.md.
A comprehensive interface that combines all AI-powered features in one place:
- Influencer discovery with real-time filtering
- AI-powered analysis with one-click insights
- Brand alignment scoring visualization
- Campaign creation workflow
- Brand Profile Setup - Step-by-step brand configuration wizard
- Influencer Discovery - Advanced search with filter sidebar
- Campaign Manager - Create, manage, and track campaigns
- Message Templates - Template editor with variable support
- Analytics Dashboard - Visual charts and metrics
- π Dashboard - Main overview and quick actions
- π Campaigns - Campaign management
- π Analytics - Performance tracking
- π Templates - Message template management
The AI analyzes influencer profiles to provide:
- Engagement Quality Score - Assessment of genuine engagement vs. artificial
- Audience Demographics Prediction - Estimated audience breakdown
- Content Style Analysis - Tone, frequency, and quality assessment
- Brand Safety Rating - Risk assessment for brand partnerships
Generate personalized messages with:
- Tone Variations - Formal, casual, or creative options
- Brand Voice Adaptation - Messages that match your brand personality
- Context Awareness - References to influencer's recent content
- Campaign-Specific Messaging - Tailored for product launches, events, etc.
AI-generated collaboration ideas including:
- Content formats (posts, reels, stories)
- Themes and concepts
- Hashtag suggestions
- Posting schedule recommendations
The AI checks for:
- Suspicious follower growth patterns
- Engagement rate anomalies
- Comment quality analysis
- Fake follower indicators
- Mailtrap (recommended for testing)
- SendGrid
- Mailgun
- Custom SMTP
- HTML email templates with branding
- Personalization variables
- Delivery tracking webhooks
- Bounce handling
- Rate limiting (50 emails/minute)
See docs/email-outreach-setup.md for detailed email setup instructions.
npm test# Unit tests
npm run test:unit
# Integration tests
npm run test:integration
# API tests
npm run test:api
# Full validation (all tests + linting)
npm run validate
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverageTests cover:
- Brand Alignment Service
- Email Service
- Influencer Data Service
- Authentication
- Database operations
- Error handling
- Performance metrics
# Build and run with Docker Compose
docker-compose up -d
# View logs
docker-compose logs -f# Start with PM2
npm run start:prod
# Or directly with PM2
pm2 start ecosystem.config.js- Set
NODE_ENV=production - Use a production MongoDB instance (Atlas recommended)
- Configure production SMTP credentials
- Set strong JWT and session secrets
- Enable HTTPS with SSL certificates
The included nginx.conf provides:
- Reverse proxy setup
- SSL/TLS configuration
- Gzip compression
- Caching headers
- Rate limiting
MongoDB Connection Failed
β Database connection failed
- Ensure MongoDB is running
- Check
MONGODB_URIis correct - Verify network connectivity
AI Features Not Working
β AI Features: Disabled
- Check
GEMINI_API_KEYis set correctly - Verify API key is valid and has quota
Email Sending Failed
Email delivery failed
- Verify SMTP credentials
- Check rate limits
- Ensure email addresses are valid
# Check system health
npm run health-check# View application logs
npm run logs| Document | Description |
|---|---|
| API Documentation | Complete API reference |
| Brand Profile Setup | Guide to configuring brand profiles |
| Database Setup | MongoDB configuration guide |
| Email Outreach Setup | Email integration guide |
| User Guide | End-user manual |
| Script | Description |
|---|---|
npm start |
Start production server |
npm run start:prod |
Start in production mode |
npm run dev |
Start development server with hot reload |
npm run build |
Build CSS and JS assets |
npm run build:prod |
Production build with optimization |
npm run test |
Run test suite |
npm run test:all |
Run all tests including integration |
npm run validate |
Full validation check |
npm run health-check |
Run health check script |
npm run deploy |
Deploy with pre-flight checks |
npm run deploy:quick |
Quick deploy skipping tests |
npm run performance:report |
Generate performance report |
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style
- Write tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini for AI capabilities
- MongoDB for database solutions
- Express.js for the web framework
- All contributors who have helped improve this project
Built with β€οΈ by the ICY Team