This is a Next.js application built with Firebase Studio. It's a platform designed for data teams to collaborate on data engineering and analysis.
CollabData is a web platform that enables users to manage data analysis projects, upload datasets, run automated analyses, and visualize the results. The application is built with a focus on real-time collaboration and workflow efficiency.
- 🔐 User Authentication: A complete login, registration, and social authentication system using Google and GitHub.
- 📊 Project Dashboard: A central dashboard to view, search, filter, and manage all analysis projects.
- ✨ New Analysis Creation: A guided workflow for creating new analysis projects, configuring tools, and uploading datasets.
- 📈 Results Visualization: Dynamic results dashboards with KPIs, charts, descriptive statistics tables, and AI-generated insights.
- 💻 Interactive Workspace: An IDE-like workspace for exploring data files.
- 👤 Profile Management: A settings page for users to update their personal information and manage their account.
- 🤖 AI Integration: Leverages Genkit to provide intelligent analysis suggestions based on dataset descriptions.
- Framework: Next.js
- UI Library: React
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: ShadCN UI
- Backend & Auth: Firebase (Authentication, Firestore)
- Generative AI: Genkit (Google AI)
Follow these steps to get the development environment running.
- Node.js (v18 or higher)
- npm
- Install the project dependencies:
npm install
- Run the development server:
npm run dev
- Open http://localhost:9002 in your browser to see the application.
Here is an overview of the most important files and directories in the project:
/
├── src/
│ ├── app/
│ │ ├── layout.tsx # Root application layout
│ │ ├── page.tsx # Landing Page
│ │ ├── login/page.tsx # Authentication page
│ │ ├── dashboard/ # Dashboard routes
│ │ │ ├── page.tsx # Main dashboard view
│ │ │ ├── layout.tsx # Layout for dashboard pages
│ │ │ ├── new-analysis/page.tsx # Page to create a new analysis
│ │ │ └── ...
│ │ └── projects/[id]/ # Routes for individual projects
│ │ ├── page.tsx # Project workspace
│ │ └── results/page.tsx # Analysis results page
│ │
│ ├── components/
│ │ ├── layout/ # Layout components (header, footer)
│ │ ├── pages/ # Page-specific components
│ │ └── ui/ # Reusable UI components (ShadCN)
│ │
│ ├── firebase/
│ │ ├── config.ts # Firebase configuration
│ │ ├── index.ts # Firebase services initialization and export
│ │ ├── provider.tsx # Firebase context provider
│ │ └── auth/use-user.tsx # Hook to get the authenticated user
│ │
│ ├── ai/
│ │ ├── genkit.ts # Genkit initialization
│ │ └── flows/ # AI flows with Genkit
│ │
│ ├── hooks/
│ │ └── use-project-store.ts # Hook for project state management
│ │
│ └── lib/
│ ├── utils.ts # Utility functions
│ ├── mock-data.ts # Sample data for the application
│ └── types.ts # TypeScript type definitions
│
├── public/ # Static files
├── package.json # Project dependencies and scripts
└── tailwind.config.ts # Tailwind CSS configuration