# Project Structure Tree project/ │ ├── external_services/ │ ├── linkedin_api/ # External LinkedIn API │ ├── bubble_db/ # Bubble.io database │ └── groq_api/ # GROQ API for NLP │ ├── core_application_ui/ │ ├── app.py # Gradio UI, Main Control │ ├── ui_generators.py # HTML & plot generation │ └── gradio_utils.py # URL param helper │ ├── state_sync/ │ ├── state_manager.py # Manages TOKEN_STATE, Bubble read, sync decision │ ├── sync_logic.py # Orchestrates data sync │ └── token_state/ # Gradio in-memory data store (conceptual) │ ├── linkedin_api_layer/ │ ├── linkedin_data_api_calls.py # Fetches LinkedIn posts, mentions, comments │ ├── linkedin_follower_stats.py # Follower demographics │ ├── data_fetching_and_rendering.py # Posts/Stats for analytics │ ├── mentions_dashboard.py # Mentions data for analytics │ └── analytics_fetch_and_rendering.py # Fetch + render data for Analytics tab │ ├── nlp_services/ │ ├── posts_categorization.py # Summarization and classification (via GROQ) │ └── transformers/ # HuggingFace local models for sentiment │ ├── db_interface/ │ └── bubble_api_calls.py # Bubble CRUD API interface │ ├── utilities/ │ ├── config.py # Constants and environment variables │ ├── sessions.py # LinkedIn API session management │ └── error_handling.py # Error catching and display │ └── README.md # (Optional) Docs about architecture and flow app.py ├── uses: gradio_utils.py ├── controls: state_manager.py ├── triggers: sync_logic.py ├── updates: token_state └── renders: ui_generators.py, analytics_fetch_and_rendering.py state_manager.py ├── reads/writes: token_state ├── reads: bubble_api_calls.py └── uses: config.py sync_logic.py ├── reads/writes: token_state ├── fetches from: │ ├── linkedin_data_api_calls.py │ ├── linkedin_follower_stats.py ├── updates: bubble_api_calls.py └── uses: config.py linkedin_data_api_calls.py ├── uses: sessions.py ├── calls NLP: posts_categorization.py ├── uses: transformers/ └── fetches from: LinkedIn API