{"id":15760482,"url":"https://github.com/sundarmd/comparative-visualization-generator","last_synced_at":"2026-05-09T15:12:30.276Z","repository":{"id":253301254,"uuid":"842594239","full_name":"sundarmd/Comparative-Visualization-Generator","owner":"sundarmd","description":"A comparative visualization generator built using streamlit, Open AI API, Python, D3.js","archived":false,"fork":false,"pushed_at":"2025-03-10T14:26:14.000Z","size":397,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-31T09:18:54.094Z","etag":null,"topics":["d3","openai-api","python","streamlit"],"latest_commit_sha":null,"homepage":"https://comparative-visualization-generator.streamlit.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sundarmd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-14T17:04:37.000Z","updated_at":"2025-03-11T11:14:27.000Z","dependencies_parsed_at":"2024-09-16T09:47:00.871Z","dependency_job_id":"cbd475c5-b4d3-4231-9baf-eda38eeb55cb","html_url":"https://github.com/sundarmd/Comparative-Visualization-Generator","commit_stats":null,"previous_names":["sundarmd/comparative-visualization-generator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sundarmd%2FComparative-Visualization-Generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sundarmd%2FComparative-Visualization-Generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sundarmd%2FComparative-Visualization-Generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sundarmd%2FComparative-Visualization-Generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sundarmd","download_url":"https://codeload.github.com/sundarmd/Comparative-Visualization-Generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246443534,"owners_count":20778252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["d3","openai-api","python","streamlit"],"created_at":"2024-10-04T10:58:24.167Z","updated_at":"2026-05-09T15:12:30.173Z","avatar_url":"https://github.com/sundarmd.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎨 Comparative Visualization Generator\n\n[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://comparative-visualization-generator.streamlit.app/) \n[![Python](https://img.shields.io/badge/Python-3.7+-blue.svg)](https://www.python.org/downloads/)\n[![D3.js](https://img.shields.io/badge/D3.js-7.x-orange.svg)](https://d3js.org/)\n[![OpenAI](https://img.shields.io/badge/OpenAI-API-green.svg)](https://openai.com/api/)\n\nGenerate interactive, comparative D3.js visualizations through natural language - no coding required!\n\n## ✨ Features\n\n- **📊 Comparative Visualizations** - Automatically compare data from two sources\n- **🔄 Interactive D3.js** - All visualizations are interactive and web-ready\n- **💬 Natural Language Interface** - Describe what you want in plain English\n- **🔄 Iterative Refinement** - Continuously improve visualizations through conversation\n- **📋 No Coding Required** - Technical complexity handled behind the scenes\n\n## 🏗️ Architecture\n\n```mermaid\nflowchart LR\n    classDef userClass fill:#f9f,stroke:#333,stroke-width:2px,color:#333,font-weight:bold\n    classDef frontendClass fill:#bbf,stroke:#33f,stroke-width:1px,color:#005\n    classDef backendClass fill:#bfb,stroke:#3b3,stroke-width:1px,color:#050\n    classDef dataClass fill:#ffd,stroke:#b90,stroke-width:1px,color:#840\n    \n    User([👤 User]):::userClass\n    \n    subgraph Frontend[\"🖥️ Frontend\"]\n        direction TB\n        SI[Streamlit Interface]:::frontendClass\n        VR[Visualization Renderer]:::frontendClass\n        HM[History Manager]:::frontendClass\n    end\n    \n    subgraph Backend[\"⚙️ Backend\"]\n        direction TB\n        DP[Data Processor]:::backendClass\n        OAI[OpenAI API]:::backendClass\n        CV[Code Validator]:::backendClass\n        CSW[Safety Wrapper]:::backendClass\n    end\n    \n    User --\u003e|\"1️⃣ API Key\"| SI\n    User --\u003e|\"2️⃣ CSV Files\"| SI\n    User --\u003e|\"3️⃣ Natural Language\"| SI\n    \n    SI --\u003e|Preprocess| DP\n    DP --\u003e|Structured Data| OAI\n    SI --\u003e|Query Context| OAI\n    \n    OAI --\u003e|D3.js Code| CV\n    CV --\u003e|Invalid| OAI\n    CV --\u003e|Valid| CSW\n    \n    CSW --\u003e|Safe Code| VR\n    VR --\u003e|Visualization| SI\n    \n    SI --\u003e|Results| User\n    \n    HM \u003c--\u003e|Version History| SI\n\n    style Frontend fill:#eef,stroke:#99c,stroke-width:2px\n    style Backend fill:#efe,stroke:#9c9,stroke-width:2px\n```\n\n## 🚀 How It Works\n\n### 1️⃣ Enter your OpenAI API key\nConnect to the OpenAI API to power the visualization generation engine.\n\n![API Key Entry](https://github.com/user-attachments/assets/2c155ed8-7baf-47fb-af20-f008433a6453)\n\n### 2️⃣ Upload your data files\nProvide two CSV files with matching schemas for comparison.\n\n![File Upload](https://github.com/user-attachments/assets/ef1434bc-f8c3-4292-8746-8cc5972f9fbf)\n\n### 3️⃣ Create visualizations through conversation\nSimply describe what you'd like to see in natural language.\n\n![Natural Language Query](https://github.com/user-attachments/assets/9e066deb-4134-474d-b411-43b45bd7bf86)\n\n### 4️⃣ Interact with your visualizations\nExplore the data through interactive D3.js visualizations.\n\n![Interactive Visualization](https://github.com/user-attachments/assets/680bbde2-f91e-43d5-9b45-bdf4f8d94be4)\n\n![Visualization Example](https://github.com/user-attachments/assets/4ec8041b-8471-4933-9f56-71c1e3bb2aee)\n\n![Another Example](https://github.com/user-attachments/assets/6e544d91-8a5b-4a70-b944-e18e9c6de149)\n\n## 📋 Requirements\n\n- Python 3.7+\n- Streamlit\n- OpenAI API key\n- Internet connection for D3.js libraries\n\n## 🔧 Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/sundarmd/comparative-visualization-generator.git\n\n# Navigate to project directory\ncd comparative-visualization-generator\n\n# Install dependencies\npip install -r requirements.txt\n\n# Run the Streamlit app\nstreamlit run streamlit_app.py\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsundarmd%2Fcomparative-visualization-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsundarmd%2Fcomparative-visualization-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsundarmd%2Fcomparative-visualization-generator/lists"}