- Project Overview
- Database Schema
- Infrastructure Architecture
- Key Features
- Technology Stack
- API Structure
- Deployment & Configuration
- Data Flow
- Security & Authentication
- Future Enhancements
Influencer Monitoring Platform is a comprehensive SaaS application designed to help businesses and marketers monitor, analyze, and manage influencer relationships across multiple social media platforms.
- Real-time Monitoring: Track influencer activities across Instagram, YouTube, TikTok, Twitter, and LinkedIn
- Campaign Management: Create and manage influencer marketing campaigns
- Analytics Dashboard: Comprehensive performance metrics and insights
- Automated Workflows: AI-powered reporting and alert systems
- Multi-tenant Architecture: Secure, isolated data per user
model User {
id String @id @default(cuid())
email String @unique
name String?
clerkId String @unique // Clerk authentication ID
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// Relations
campaigns Campaign[]
influencers Influencer[]
activities Activity[]
briefs Brief[]
automations Automation[]
notifications Notification[]
}model Influencer {
id String @id @default(cuid())
name String
username String
platform Platform // INSTAGRAM, YOUTUBE, TIKTOK, etc.
followers Int @default(0)
engagement Float @default(0)
bio String?
avatar String?
website String?
email String?
phone String?
location String?
category String?
profileUrl String? // Original social media link
status InfluencerStatus @default(ACTIVE)
isVerified Boolean @default(false)
// Relations
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
campaigns CampaignInfluencer[]
posts Post[]
activities Activity[]
@@unique([username, platform, userId]) // Unique per user
}model Campaign {
id String @id @default(cuid())
name String
description String?
startDate DateTime
endDate DateTime?
budget Float?
status CampaignStatus @default(ACTIVE)
goals String[] // Array of campaign goals
metrics Json? // Performance metrics
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// Relations
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
influencers CampaignInfluencer[]
posts Post[]
activities Activity[]
}model Post {
id String @id @default(cuid())
title String?
content String
url String
platform Platform
postType PostType // POST, STORY, REEL, VIDEO, etc.
publishedAt DateTime
likes Int @default(0)
comments Int @default(0)
shares Int @default(0)
views Int @default(0)
engagement Float @default(0)
reach Int @default(0)
impressions Int @default(0)
sentiment Sentiment? // POSITIVE, NEUTRAL, NEGATIVE
tags String[]
mentions String[]
hashtags String[]
mediaUrls String[]
// Relations
influencerId String
influencer Influencer @relation(fields: [influencerId], references: [id], onDelete: Cascade)
campaignId String?
campaign Campaign? @relation(fields: [campaignId], references: [id], onDelete: SetNull)
activities Activity[]
}model Activity {
id String @id @default(cuid())
type ActivityType // NEW_POST, ENGAGEMENT_MILESTONE, etc.
title String
description String?
data Json?
priority Priority @default(MEDIUM)
isRead Boolean @default(false)
createdAt DateTime @default(now())
// Relations
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
influencerId String?
influencer Influencer? @relation(fields: [influencerId], references: [id], onDelete: SetNull)
campaignId String?
campaign Campaign? @relation(fields: [campaignId], references: [id], onDelete: SetNull)
postId String?
post Post? @relation(fields: [postId], references: [id], onDelete: SetNull)
}model CampaignInfluencer {
id String @id @default(cuid())
campaignId String
influencerId String
status CampaignInfluencerStatus @default(INVITED)
rate Float?
notes String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// Relations
campaign Campaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)
influencer Influencer @relation(fields: [influencerId], references: [id], onDelete: Cascade)
@@unique([campaignId, influencerId])
}model Brief {
id String @id @default(cuid())
title String
content String
summary String?
timeRange String
data Json?
isGenerated Boolean @default(false)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// Relations
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}enum Platform {
INSTAGRAM
YOUTUBE
TIKTOK
TWITTER
LINKEDIN
FACEBOOK
TWITCH
PINTEREST
SNAPCHAT
TWITTER_X
}
enum InfluencerStatus {
ACTIVE
INACTIVE
SUSPENDED
PENDING
BLACKLISTED
}
enum CampaignStatus {
DRAFT
ACTIVE
PAUSED
COMPLETED
CANCELLED
}
enum ActivityType {
NEW_POST
ENGAGEMENT_MILESTONE
FOLLOWER_MILESTONE
BRAND_MENTION
COMPETITOR_ACTIVITY
CAMPAIGN_UPDATE
PERFORMANCE_ALERT
TREND_DETECTED
}
enum PostType {
POST
STORY
REEL
VIDEO
LIVE
IGTV
TWEET
THREAD
ARTICLE
SHORT
}
enum Sentiment {
POSITIVE
NEUTRAL
NEGATIVE
}
enum Priority {
LOW
MEDIUM
HIGH
URGENT
}βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β Backend β β External β
β (Next.js) βββββΊβ (API Routes) βββββΊβ APIs β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Clerk Auth β β Prisma ORM β β RapidAPI β
β (Authentication)β β (Database) β β (Social Media)β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β PostgreSQL β
β (Neon DB) β
βββββββββββββββββββ
influencer-monitoring/
βββ app/ # Next.js App Router
β βββ api/ # API Routes
β β βββ dashboard/ # Dashboard data endpoints
β β βββ influencers/ # Influencer CRUD operations
β β βββ social-media/ # Social media data integration
β β βββ webhooks/ # Clerk webhook handlers
β β βββ campaigns/ # Campaign management
β β βββ users/ # User management
β βββ dashboard/ # Main dashboard page
β βββ influencers/ # Influencer management UI
β βββ analytics/ # Analytics dashboard
β βββ add-influencer/ # Add influencer by link
β βββ auth/ # Authentication pages
β βββ demo/ # Demo pages
βββ components/ # Reusable UI components
β βββ ui/ # Shadcn/UI components
β βββ navigation.tsx # Navigation component
β βββ analytics-charts.tsx # Chart components
βββ lib/ # Utilities and services
β βββ services/ # Business logic services
β β βββ dashboardService.ts # Dashboard data logic
β β βββ socialMediaService.ts # Social media API integration
β β βββ userService.ts # User management
β βββ prisma.ts # Database client
β βββ config/ # Configuration files
βββ prisma/ # Database schema and migrations
β βββ schema.prisma # Database schema definition
β βββ seed.ts # Database seeding script
βββ hooks/ # Custom React hooks
βββ styles/ # Global styles
βββ public/ # Static assets
- Clerk Integration: Secure authentication with social login options
- User Sync: Automatic user creation via webhooks
- Multi-tenant Architecture: Each user has isolated data
- Role-based Access: Different permission levels
- Multi-platform Support: Instagram, YouTube, TikTok, Twitter, LinkedIn
- Profile Import: Add influencers by pasting social media links
- Real-time Data: Fetch live follower counts and engagement rates
- Status Tracking: Active, inactive, suspended, blacklisted
- Category Classification: Organize influencers by niche/industry
- Campaign Creation: Define goals, budget, timeline, and KPIs
- Influencer Assignment: Link influencers to campaigns with rates
- Performance Tracking: Monitor campaign metrics in real-time
- Status Management: Draft, active, paused, completed states
- Budget Tracking: Monitor campaign spend and ROI
- Post Tracking: Monitor influencer posts across all platforms
- Engagement Analytics: Track likes, comments, shares, views
- Sentiment Analysis: AI-powered sentiment detection
- Hashtag Tracking: Monitor branded hashtags and mentions
- Media Analysis: Track image and video performance
- Real-time Dashboard: Live performance overview
- Interactive Charts: Visual data representation with Recharts
- AI-powered Briefs: Automated performance reports
- Activity Feed: Real-time notifications and updates
- Export Capabilities: PDF and CSV report generation
- Monitoring Rules: Automated content monitoring
- Alert System: Brand mention and engagement alerts
- Scheduled Reports: Automated performance reports
- Competitor Tracking: Monitor competitor activities
- Workflow Automation: Streamlined processes
{
"framework": "Next.js 15.2.4",
"language": "TypeScript",
"styling": "Tailwind CSS + Shadcn/UI",
"authentication": "Clerk",
"state_management": "React Hooks",
"charts": "Recharts",
"forms": "React Hook Form + Zod",
"icons": "Lucide React",
"themes": "next-themes"
}{
"database": "PostgreSQL (Neon)",
"orm": "Prisma",
"api": "Next.js API Routes",
"authentication": "Clerk",
"external_apis": "RapidAPI (Social Media)",
"deployment": "Vercel",
"webhooks": "Clerk Webhooks"
}{
"package_manager": "npm",
"linter": "ESLint",
"formatter": "Prettier",
"database_tools": "Prisma Studio",
"version_control": "Git",
"deployment": "Vercel"
}GET /api/dashboard
// Returns: Dashboard stats, performance metrics, recent activitiesGET /api/influencers // List all influencers
POST /api/influencers // Create new influencer
GET /api/influencers/[id] // Get specific influencer
PUT /api/influencers/[id] // Update influencer
DELETE /api/influencers/[id] // Delete influencer
POST /api/influencers/add // Add influencer by link
POST /api/influencers/fetch-profile // Fetch profile dataGET /api/campaigns // List all campaigns
POST /api/campaigns // Create new campaign
GET /api/campaigns/[id] // Get specific campaign
PUT /api/campaigns/[id] // Update campaign
DELETE /api/campaigns/[id] // Delete campaignGET /api/social-media // Aggregated social media data
GET /api/social-media/instagram // Instagram specific data
GET /api/social-media/youtube // YouTube specific data
GET /api/social-media/tiktok // TikTok specific dataPOST /api/users/sync // Sync user data
POST /api/webhooks/clerk // Clerk webhook handler// Success Response
{
success: true,
data: { ... },
message?: string
}
// Error Response
{
success: false,
error: string,
details?: any
}{
"buildCommand": "npm run build",
"outputDirectory": ".next",
"framework": "nextjs",
"installCommand": "npm install",
"devCommand": "npm run dev",
"regions": ["iad1"],
"functions": {
"app/api/**/*.ts": {
"maxDuration": 30
}
},
"env": {
"NODE_ENV": "production"
},
"build": {
"env": {
"PRISMA_GENERATE_DATAPROXY": "true"
}
}
}# Database Configuration
DATABASE_URL="postgresql://neondb_owner:npg_Xl7pN6jUuOKE@ep-rapid-star-adqh2flb-pooler.c-2.us-east-1.aws.neon.tech/neondb?sslmode=require&channel_binding=require"
# Authentication (Clerk)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_test_b3JnYW5pYy1nbmF0LTc0LmNsZXJrLmFjY291bnRzLmRldiQ"
CLERK_SECRET_KEY="sk_test_..."
# Social Media APIs (RapidAPI)
RAPIDAPI_KEY="406bb2f319mshffa9502c0c75cd9p125c30jsn298c9b4ca6f7"
# AI/OpenAI (for future features)
OPENAI_API_KEY="sk-..."
# Application
NODE_ENV="production"
NEXT_PUBLIC_APP_URL="https://your-app.vercel.app"{
"scripts": {
"build": "prisma generate && next build",
"postinstall": "prisma generate",
"dev": "next dev",
"start": "next start",
"db:generate": "prisma generate",
"db:push": "prisma db push",
"db:migrate": "prisma migrate dev",
"db:seed": "tsx prisma/seed.ts",
"db:studio": "prisma studio"
}
}1. User visits app β Clerk middleware checks auth
2. If not authenticated β Redirect to login
3. User signs in β Clerk creates session
4. Webhook triggers β User record created in database
5. User redirected to dashboard β API calls with auth token
1. User adds influencer link β Platform detection
2. API call to RapidAPI β Fetch profile data
3. Data stored in database β Influencer record created
4. Real-time monitoring starts β Regular API calls
5. Data updates dashboard β Real-time metrics
1. User creates campaign β Campaign record created
2. Influencers assigned β Junction table updated
3. Content monitoring starts β Post tracking begins
4. Performance metrics calculated β Real-time updates
5. Reports generated β AI-powered insights
1. RapidAPI calls β Platform-specific endpoints
2. Data aggregation β Normalized format
3. Database storage β Performance tracking
4. Analytics processing β Chart data generation
5. Dashboard updates β Real-time display
- Clerk Integration: Industry-standard authentication
- JWT Tokens: Secure session management
- Webhook Security: Signed webhook verification
- API Protection: Middleware-based route protection
- Database Encryption: PostgreSQL with SSL
- Environment Variables: Secure configuration management
- CORS Protection: Cross-origin request security
- Input Validation: Zod schema validation
- Multi-tenant Isolation: User data separation
- GDPR Compliance: Data protection measures
- Audit Logging: Activity tracking
- Data Retention: Configurable retention policies
- AI-powered Content Analysis: Advanced sentiment and trend detection
- Predictive Analytics: Engagement forecasting
- Advanced Reporting: Custom report builder
- Team Collaboration: Multi-user workspaces
- Mobile Application: React Native mobile app
- Marketplace Integration: Direct influencer booking
- Payment Processing: Campaign payment automation
- Advanced Automation: AI-driven campaign optimization
- API Marketplace: Third-party integrations
- White-label Solution: Custom branding options
- Real-time WebSockets: Live data streaming
- Caching Layer: Redis for performance optimization
- Microservices Architecture: Scalable service separation
- Advanced Monitoring: Application performance monitoring
- CI/CD Pipeline: Automated testing and deployment
- Response Time: < 200ms for API calls
- Database Queries: Optimized with Prisma
- Real-time Updates: Webhook-driven updates
- Scalability: Vercel serverless architecture
- Uptime: 99.9% availability target
- Error Tracking: Comprehensive error logging
- Performance Monitoring: Response time tracking
- User Analytics: Usage pattern analysis
- Database Performance: Query optimization
- API Rate Limiting: Protection against abuse
The Influencer Monitoring Platform represents a modern, scalable solution for influencer marketing management. Built with cutting-edge technologies and following best practices, it provides:
- Comprehensive Monitoring: Multi-platform influencer tracking
- Real-time Analytics: Live performance insights
- Automated Workflows: AI-powered reporting and alerts
- Scalable Architecture: Cloud-native deployment
- Security First: Enterprise-grade security measures
This platform is designed to grow with your business needs, providing the tools and insights necessary to succeed in the dynamic world of influencer marketing.
For technical questions or implementation details, please refer to the project documentation or contact the development team.