# user_dashboard.py - Gradio-based interface to view token usage and affiliate stats import gradio as gr from monetization.token_manager import TokenManager from monetization.affiliate_engine import get_affiliate_recommendations # Simulated app + earnings tracker USER_APPS = { "user_001": [ {"title": "WaveBot", "category": "retail", "clicks": 8, "revenue": 2.55}, {"title": "EduHelper", "category": "educational", "clicks": 13, "revenue": 5.20} ] } tm = TokenManager() tm.register_user("user_001") def dashboard_view(user_id): balance = tm.check_balance(user_id) apps = USER_APPS.get(user_id, []) total_revenue = sum(app['revenue'] for app in apps) app_display = "\n".join([f"📦 {a['title']} ({a['category']}): ${a['revenue']:.2f} from {a['clicks']} clicks" for a in apps]) recs = get_affiliate_recommendations(apps[0]['category'] if apps else "creative") rec_display = "\n".join([f"🔗 [{r['name']}]({r['url']})" for r in recs]) return f""" 🪙 Tokens: {balance} 💰 Total Affiliate Revenue: ${total_revenue:.2f} **Your Apps:** {app_display} **Suggested Monetization Products:** {rec_display} """ # Launch dashboard if __name__ == "__main__": with gr.Blocks() as dash: gr.Markdown("""# 📊 Your RoboSage Creator Dashboard""") uid = gr.Textbox(label="Enter your User ID", value="user_001") output = gr.Markdown() go = gr.Button("Load Dashboard") go.click(fn=dashboard_view, inputs=uid, outputs=output) dash.launch()