{"id":48075347,"url":"https://github.com/brej-29/collaborative-data-insights-portal","last_synced_at":"2026-04-04T14:49:37.054Z","repository":{"id":302038040,"uuid":"1011003598","full_name":"brej-29/collaborative-data-insights-portal","owner":"brej-29","description":"Collaborative Data Insights Portal is a real-time dashboarding app where users can upload datasets, auto-generate or manually build charts, edit them live across tabs with WebSockets, and persist configurations in the backend. Built with React, Spring Boot, and WebSocket-based sync for seamless multi-user collaboration.","archived":false,"fork":false,"pushed_at":"2025-09-27T17:54:35.000Z","size":683,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-27T19:34:19.616Z","etag":null,"topics":["analytics-portal","auto-chart-generation","backend-persistence","chart-sync","chartjs","collaborative-analytics","dashboard","data-cleaning","data-visualization","dataset-insights","frontend","live-editing","multi-user","openrouter","react","real-time-collaboration","spring-boot","ui","websocket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brej-29.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-30T06:52:03.000Z","updated_at":"2025-09-27T17:54:39.000Z","dependencies_parsed_at":"2025-09-18T22:00:41.877Z","dependency_job_id":null,"html_url":"https://github.com/brej-29/collaborative-data-insights-portal","commit_stats":null,"previous_names":["brej-29/collaborative-data-insights-portal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brej-29/collaborative-data-insights-portal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brej-29%2Fcollaborative-data-insights-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brej-29%2Fcollaborative-data-insights-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brej-29%2Fcollaborative-data-insights-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brej-29%2Fcollaborative-data-insights-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brej-29","download_url":"https://codeload.github.com/brej-29/collaborative-data-insights-portal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brej-29%2Fcollaborative-data-insights-portal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31403676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["analytics-portal","auto-chart-generation","backend-persistence","chart-sync","chartjs","collaborative-analytics","dashboard","data-cleaning","data-visualization","dataset-insights","frontend","live-editing","multi-user","openrouter","react","real-time-collaboration","spring-boot","ui","websocket"],"created_at":"2026-04-04T14:49:36.900Z","updated_at":"2026-04-04T14:49:37.029Z","avatar_url":"https://github.com/brej-29.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e📊 Collaborative AI Dashboard\u003c/h1\u003e\n  \u003cp\u003e\u003ci\u003eBuild, auto-generate, and collaboratively edit interactive dashboards with AI-powered chart recommendations, real-time WebSocket sync, and secure user authentication — built with React, Spring Boot \u0026 WebSockets\u003c/i\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/brej-29/collaborative-data-insights-portal\"\u003e\n    \u003cimg alt=\"Last Commit\" src=\"https://img.shields.io/github/last-commit/brej-29/collaborative-data-insights-portal\"\u003e\n  \u003c/a\u003e\n  \u003cimg alt=\"Language\" src=\"https://img.shields.io/badge/Language-TypeScript-blue\"\u003e\n  \u003cimg alt=\"Framework\" src=\"https://img.shields.io/badge/Framework-React%20%7C%20SpringBoot-green\"\u003e\n  \u003cimg alt=\"WebSockets\" src=\"https://img.shields.io/badge/Real--Time-WebSockets-orange\"\u003e\n  \u003cimg alt=\"AI\" src=\"https://img.shields.io/badge/AI-OpenRouter-purple\"\u003e\n  \u003cimg alt=\"Database\" src=\"https://img.shields.io/badge/Database-Postgres-yellow\"\u003e\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-MIT-black\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cb\u003eBuilt with the tools and technologies:\u003c/b\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ccode\u003eReact\u003c/code\u003e | \u003ccode\u003eTypeScript\u003c/code\u003e | \u003ccode\u003eSpring Boot\u003c/code\u003e | \u003ccode\u003ePostgres\u003c/code\u003e | \u003ccode\u003eWebSockets (STOMP)\u003c/code\u003e | \u003ccode\u003eOpenRouter API\u003c/code\u003e | \u003ccode\u003eJWT Auth\u003c/code\u003e\n\u003c/div\u003e\n\n---\n\n## **Table of Contents**\n* [Overview](#overview)\n* [Features](#features)\n* [Getting Started](#getting-started)\n    * [Project Structure](#project-structure)\n    * [Prerequisites](#prerequisites)\n    * [Installation](#installation)\n    * [Configuration](#configuration)\n    * [Usage](#usage)\n* [Completed Work](#completed-work)\n* [Pending Work](#pending-work)\n* [License](#license)\n* [Contact](#contact)\n\n---\n\n## **Overview**\n\nCollaborative AI Dashboard is an interactive web platform where users can **upload datasets, auto-generate meaningful visualizations via AI, and collaborate in real-time** with other users. The system blends **AI intelligence**, **real-time sync**, and **multi-user support** to enable data-driven insights quickly and effectively.\n\n---\n\n### **Project Highlights**\n- **AI Auto-Charting:** Suggests charts and mappings via OpenRouter API based on dataset samples.\n- **Manual Chart Builder:** Create bar, line, pie, scatter, histogram, radar, doughnut, area charts, and more.\n- **Collaboration:** Real-time editing, add/delete sync, and WebSocket-based updates across tabs/sessions.\n- **Persistence:** Save and reload charts via a Postgres-backed Spring Boot API.\n- **Authentication:** Secure login/signup with JWT-based authentication and role-based access.\n- **Scalable Design:** Extensible architecture to add more AI/ML, export options, and UI polish.\n\n---\n\n## **Features**\n- AI-driven chart recommendations with editable configurations.\n- Multi-component dashboards: render multiple charts on one screen.\n- WebSocket-powered real-time chart updates, add, and delete sync.\n- Save/load charts per dataset and per user.\n- Data Cleaner for missing values, type issues, and outliers.\n- Secure login/signup flow with user-specific charts and datasets.\n- Backend persistence with Postgres and JPA.\n\n---\n\n## **Getting Started**\n\n### **Project Structure**\n\n    collaborative-dashboard/\n    ├─ frontend/                     # React + TS client\n    │  ├─ src/\n    │  │  ├─ components/             # Chart blocks, dashboard\n    │  │  ├─ context/                # WebSocket context provider\n    │  │  ├─ pages/                  # Login, Signup, Dashboard\n    │  │  └─ api/                    # Axios calls to backend\n    ├─ backend/                      # Spring Boot server\n    │  ├─ controller/                # Chart, Dataset, Auth APIs\n    │  ├─ model/                     # Entities: User, Dataset, Chart\n    │  ├─ repository/                # Spring Data JPA repos\n    │  ├─ security/                  # JWT filters, user provider\n    │  └─ service/                   # Business logic\n    ├─ docker/                       # Deployment configs (future)\n    ├─ README.md\n    └─ LICENSE\n\n### **Prerequisites**\n- Node.js **18+**\n- Java **17+**\n- Postgres **15+**\n- OpenRouter API key for AI chart suggestions\n\n### **Installation**\n1) Install frontend dependencies:\n\n        cd frontend\n        npm install\n\n2) Run backend:\n\n        cd backend\n        ./mvnw spring-boot:run\n\n3) Run frontend:\n\n        cd frontend\n        npm start\n\n### **Configuration**\n- Configure `.env` in frontend with API base URL.\n- Configure `application.properties` in backend with Postgres DB connection and JWT secret.\n\n### **Usage**\n1) Sign up and log in.\n2) Upload/select a dataset.\n3) Generate AI-suggested charts or manually create them.\n4) Save charts → reload them when selecting the same dataset.\n5) Edit, delete, and see changes in real-time across sessions.\n\n---\n\n## **Completed Work**\n- ✅ Manual chart builder with multiple chart types.  \n- ✅ AI auto-generation of charts via OpenRouter.  \n- ✅ WebSocket setup for real-time edit sync.  \n- ✅ Save to backend \u0026 load per dataset/user.  \n- ✅ Delete charts from backend \u0026 UI.  \n- ✅ Prevent duplicate chart insertion.  \n- ✅ Secure login/signup with JWT authentication.  \n\n---\n\n## **Pending Work**\n- 🔄 WebSocket sync for add/delete across tabs.  \n- 🔄 Real-time multi-user collaboration (beyond same-user).  \n- 🔄 Drag-and-drop repositioning of charts in the dashboard.  \n- 🔄 Enhanced UI/UX based on reference designs.  \n- 🔄 Data Cleaner enhancements with aggregation support.  \n- 🔄 Export options: PDF/Excel snapshot of dashboards.  \n- 🔄 Containerization \u0026 deployment with Docker.  \n\n---\n\n## **License**\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n\n---\n\n## **Contact**\n💬 Want to collaborate or contribute? Issues and PRs are welcome!  \nReach me on [LinkedIn](https://www.linkedin.com/in/brejesh-balakrishnan-7855051b9/).  \n\n---\n\n🚀 Let’s build the most **intelligent, collaborative data dashboard** together!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrej-29%2Fcollaborative-data-insights-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrej-29%2Fcollaborative-data-insights-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrej-29%2Fcollaborative-data-insights-portal/lists"}