10 KiB
ALwrity Billing Frontend Integration Plan
🎯 Overview
This document outlines the integration of usage-based billing and monitoring into ALwrity's main dashboard, providing enterprise-grade insights and cost transparency for all external API usage.
📊 Current System Analysis
Existing Monitoring APIs
- System Health:
/api/content-planning/monitoring/health - API Stats:
/api/content-planning/monitoring/api-stats - Lightweight Stats:
/api/content-planning/monitoring/lightweight-stats - Cache Performance:
/api/content-planning/monitoring/cache-stats
New Subscription APIs
- Usage Dashboard:
/api/subscription/dashboard/{user_id} - Usage Stats:
/api/subscription/usage/{user_id} - Usage Trends:
/api/subscription/usage/{user_id}/trends - Subscription Plans:
/api/subscription/plans - API Pricing:
/api/subscription/pricing - Usage Alerts:
/api/subscription/alerts/{user_id}
🏗️ Architecture Overview
Main Dashboard Integration Points
Main Dashboard
├── Header Section
│ ├── System Health Indicator
│ ├── Real-time Usage Summary
│ └── Alert Notifications
├── Billing Overview Section
│ ├── Current Usage vs Limits
│ ├── Cost Breakdown by Provider
│ └── Monthly Projections
├── API Monitoring Section
│ ├── External API Performance
│ ├── Cost per API Call
│ └── Usage Trends
└── Subscription Management
├── Plan Comparison
├── Usage Optimization Tips
└── Upgrade/Downgrade Options
🎨 Design System & Components
Design Principles
- Enterprise-Grade: Professional, clean, trustworthy
- Cost Transparency: Clear breakdown of all charges
- Real-Time: Live updates and monitoring
- Actionable Insights: Recommendations and optimizations
- Mobile Responsive: Works across all devices
Technology Stack
- Styling: Tailwind CSS with custom enterprise theme
- Animations: Framer Motion for smooth transitions
- Charts: Recharts for data visualization
- Icons: Lucide React for consistent iconography
- State Management: React Query for API caching
📁 File Structure
New Components to Create
frontend/src/components/
├── billing/
│ ├── BillingOverview.tsx
│ ├── UsageDashboard.tsx
│ ├── CostBreakdown.tsx
│ ├── UsageTrends.tsx
│ ├── SubscriptionPlans.tsx
│ ├── UsageAlerts.tsx
│ └── CostOptimization.tsx
├── monitoring/
│ ├── SystemHealthIndicator.tsx
│ ├── APIPerformanceMetrics.tsx
│ ├── RealTimeUsageMonitor.tsx
│ └── ExternalAPICosts.tsx
└── dashboard/
├── BillingSection.tsx
├── MonitoringSection.tsx
└── DashboardHeader.tsx
Services to Create
frontend/src/services/
├── billingService.ts
├── monitoringService.ts
└── subscriptionService.ts
Types to Create
frontend/src/types/
├── billing.ts
├── monitoring.ts
└── subscription.ts
🔧 Component Specifications
1. Dashboard Header Enhancement
File: frontend/src/components/dashboard/DashboardHeader.tsx
Features:
- System health indicator with color-coded status
- Real-time usage summary (calls, cost, tokens)
- Alert notification badge
- Quick access to billing details
API Integration:
GET /api/content-planning/monitoring/lightweight-statsGET /api/subscription/dashboard/{user_id}
2. Billing Overview Section
File: frontend/src/components/billing/BillingOverview.tsx
Features:
- Current month usage vs limits
- Cost breakdown by API provider
- Monthly cost projection
- Usage percentage indicators
API Integration:
GET /api/subscription/dashboard/{user_id}GET /api/subscription/usage/{user_id}
3. Cost Breakdown Component
File: frontend/src/components/billing/CostBreakdown.tsx
Features:
- Interactive pie chart of API costs
- Provider-specific cost details
- Token usage visualization
- Cost per request analysis
API Integration:
GET /api/subscription/usage/{user_id}GET /api/subscription/pricing
4. Usage Trends Component
File: frontend/src/components/billing/UsageTrends.tsx
Features:
- 6-month usage trend charts
- Cost projection graphs
- Peak usage identification
- Seasonal pattern analysis
API Integration:
GET /api/subscription/usage/{user_id}/trends
5. System Health Indicator
File: frontend/src/components/monitoring/SystemHealthIndicator.tsx
Features:
- Real-time system status
- API response time monitoring
- Error rate tracking
- Performance metrics
API Integration:
GET /api/content-planning/monitoring/healthGET /api/content-planning/monitoring/api-stats
6. External API Costs Monitor
File: frontend/src/components/monitoring/ExternalAPICosts.tsx
Features:
- Real-time cost tracking
- API call frequency monitoring
- Cost per provider breakdown
- Usage optimization suggestions
API Integration:
GET /api/subscription/usage/{user_id}GET /api/content-planning/monitoring/api-stats
🎨 Design Elements & Styling
Color Scheme
/* Enterprise Theme */
--primary: #1e40af (Blue)
--secondary: #059669 (Green)
--warning: #d97706 (Orange)
--danger: #dc2626 (Red)
--success: #16a34a (Green)
--neutral: #6b7280 (Gray)
Key Design Elements
- Gradient Cards: Subtle gradients for depth
- Glass Morphism: Frosted glass effects for modern look
- Micro Animations: Smooth hover states and transitions
- Data Visualization: Clean, professional charts
- Status Indicators: Color-coded health and usage status
- Progress Bars: Animated usage progress indicators
Framer Motion Animations
- Page Transitions: Smooth slide-in effects
- Card Hover: Subtle lift and shadow effects
- Loading States: Skeleton loaders and spinners
- Data Updates: Smooth number transitions
- Chart Animations: Progressive data reveal
📊 Data Visualization Strategy
Chart Types & Usage
- Line Charts: Usage trends over time
- Pie Charts: Cost breakdown by provider
- Bar Charts: Monthly usage comparisons
- Area Charts: Cumulative cost tracking
- Gauge Charts: Usage percentage indicators
- Heatmaps: Peak usage patterns
Recharts Configuration
// Chart theme configuration
const chartTheme = {
colors: ['#1e40af', '#059669', '#d97706', '#dc2626', '#16a34a'],
grid: { stroke: '#e5e7eb', strokeWidth: 1 },
axis: { stroke: '#6b7280', fontSize: 12 },
tooltip: { backgroundColor: 'rgba(0,0,0,0.8)', border: 'none' }
}
💬 User Messaging Strategy
Cost Transparency Messages
- "This month you've used $X.XX across Y API calls"
- "Your Gemini usage costs $X.XX per 1M tokens"
- "You're on track to spend $X.XX this month"
- "Upgrading to Pro could save you $X.XX/month"
Usage Optimization Tips
- "Consider using Gemini 2.0 Flash Lite for 40% cost savings"
- "Your search API usage is 3x higher than average"
- "Batch similar requests to reduce API call costs"
- "Enable caching to reduce redundant API calls"
Alert Messages
- "⚠️ You've used 80% of your monthly limit"
- "🚨 API limit reached - upgrade to continue"
- "💡 Cost optimization opportunity detected"
- "✅ Usage within normal range"
🔄 Real-Time Updates
WebSocket Integration
- Usage Updates: Real-time cost and usage tracking
- System Health: Live performance monitoring
- Alert Notifications: Instant usage warnings
- Cost Projections: Dynamic monthly estimates
Polling Strategy
- High Frequency: Every 30 seconds for critical metrics
- Medium Frequency: Every 5 minutes for usage stats
- Low Frequency: Every 15 minutes for trends
📱 Responsive Design
Breakpoint Strategy
- Mobile: < 768px - Stacked layout, simplified charts
- Tablet: 768px - 1024px - Two-column layout
- Desktop: > 1024px - Full dashboard layout
Mobile Optimizations
- Touch-Friendly: Large tap targets
- Simplified Charts: Essential data only
- Swipe Navigation: Between dashboard sections
- Collapsible Sections: Space-efficient design
🚀 Implementation Phases
Phase 1: Core Integration (Week 1)
-
Dashboard Header Enhancement
- System health indicator
- Basic usage summary
- Alert notifications
-
Billing Overview Section
- Current usage display
- Cost breakdown
- Usage limits
Phase 2: Advanced Features (Week 2)
-
Cost Visualization
- Interactive charts
- Provider breakdown
- Usage trends
-
Monitoring Integration
- API performance metrics
- Real-time cost tracking
- System health monitoring
Phase 3: Optimization (Week 3)
-
User Experience
- Animations and transitions
- Mobile responsiveness
- Performance optimization
-
Advanced Analytics
- Cost optimization suggestions
- Usage pattern analysis
- Predictive insights
🔒 Security & Privacy
Data Protection
- Cost Data: Encrypted in transit and at rest
- Usage Patterns: Anonymized for analytics
- User Privacy: No sensitive data in logs
- API Keys: Secure storage and rotation
Access Control
- Role-Based: Different views for different user types
- Audit Logging: Track all billing-related actions
- Rate Limiting: Prevent abuse of monitoring APIs
- Data Retention: Configurable data retention policies
📈 Success Metrics
User Engagement
- Dashboard Usage: Time spent on billing section
- Feature Adoption: Usage of cost optimization features
- User Satisfaction: Feedback on cost transparency
Business Impact
- Cost Awareness: Reduction in unexpected overages
- Plan Optimization: Appropriate plan selection
- User Retention: Reduced churn due to cost surprises
🎯 Next Steps
- Review and Approve: This integration plan
- Create Component Library: Build reusable billing components
- API Integration: Connect to subscription and monitoring APIs
- Design System: Implement enterprise-grade styling
- Testing: Comprehensive testing across devices and scenarios
- Deployment: Gradual rollout with monitoring
Note: This plan prioritizes cost transparency, user experience, and enterprise-grade quality while maintaining the existing system's functionality and performance.