Skip to content

Latest commit

 

History

History
197 lines (130 loc) · 5.21 KB

File metadata and controls

197 lines (130 loc) · 5.21 KB

BeakDash Business Intelligence

BeakDash is an AI-powered, modular dashboard platform built with Next.js and TypeScript. It lets authenticated users connect to various data sources, define datasets, design custom dashboards with drag-and-drop widgets, and even set up database-QA alerts—all enriched by AI insights.


image

Features

  • User Authentication & Management

    • Sign up, log in, log out, password management
    • Profile, privacy, integrations, and API-key pages
  • Data Connections

    • CSV uploads, REST API, and SQL database connections
    • Schema inspection and test queries via the UI
  • Datasets

    • Transform raw connections into reusable datasets
    • Filters, mappings, and schema-driven validations
  • Dashboard Builder

    • Create multiple dashboards
    • Drag-and-drop widget placement with responsive layouts
    • Widgets include charts (bar, line, pie), tables, text, counters, etc.
  • Widget Library & Editor

    • Pre-built widgets (stat cards, tables, charts)
    • Custom field-mapping and configuration dialogs
    • Shareable via link or embeddable iframe
  • AI-Powered Insights

    • “Copilot” pane suggests trends, anomalies, and narrative summaries
    • Status indicators for AI processing
  • DB-QA & Alerts

    • Write and schedule SQL queries against live databases
    • Alert rules with history, notifications, and enable/disable toggles
  • Team Collaboration (“Spaces”)

    • Create “spaces” to share dashboards, queries, and alerts with team members
    • Join/leave flows and per-space permissions
  • Health & Migration

    • Built-in health check endpoint
    • Database migrations via Drizzle ORM

Technology Stack

  • Framework: Next.js 15 (App Router, API Routes)
  • Language: TypeScript, React (RSC & Client Components)
  • Styling: Tailwind CSS, Shadcn UI, Radix UI primitives
  • State & Data: TanStack React-Query, Zustand, Drizzle ORM (PostgreSQL)
  • Authentication: Clerk (@clerk/nextjs) & NextAuth sessions
  • Charts & UI: Recharts, Ant Design Charts, Framer Motion
  • AI: OpenAI API for copilot and suggestions
  • Dev Tools: ESLint, Prettier, Drizzle-Kit, pnpm, Vite plugins

Prerequisites

  • Node.js ≥ 18 (20+ recommended)
  • pnpm ≥ 7 or npm / yarn
  • A PostgreSQL instance (or compatible via DATABASE_URL)
  • OpenAI API key (for AI features)

Getting Started

  1. Clone & Install

    git clone https://github.com/yourorg/beak-insights-beakdash.git
    cd beak-insights-beakdash
    pnpm install
  2. Environment

    Copy the example and update values:

    cp .env.example .env

    Populate at minimum:

    PORT=5000
    DATABASE_URL=postgresql://user:pass@host:5432/dbname
    OPENAI_API_KEY=sk-...
  3. Database Setup

    pnpm run db:push      # Apply Drizzle schema changes
    pnpm run db:migrate   # Run pending migrations
  4. Development

    pnpm run dev
  5. Production Build

    pnpm run build
    pnpm start

Project Structure

beak-insights-beakdash/
├── app/                   # Next.js App Router
│   ├── api/               # RESTful API routes (auth, connections, dashboards, etc.)
│   ├── auth/              # Auth pages & layouts
│   ├── components/        # Reusable UI components (ai, widgets, db-qa, etc.)
│   ├── providers/         # React context providers (Auth, Query)
│   ├── styles/            # Global CSS
│   └── page.tsx           # Main entry page
├── lib/                   # Client & server utilities (api client, db adapters, hooks)
├── drizzle.config.ts      # Drizzle ORM configuration
├── components.json        # Shadcn UI config
├── tailwind.config.ts     # Tailwind CSS config
├── next.config.ts         # Next.js config (CORS, images)
├── package.json           # Scripts & dependencies
├── .env.example           # Environment variables template
└── pnpm-workspace.yaml    # Monorepo settings

Usage Highlights

  • Create a Connection: Go to ConnectionsNew Connection → Choose CSV/REST/SQL → Configure → Save.

  • Build a Dataset: DatasetsNew Dataset → Select Connection → Apply filters/mappings → Save.

  • Add Widgets to Dashboard: Dashboards → Choose or create a dashboard → Add Widget → Configure chart/table → Save.

  • Set DB-QA Alert: DB-QAAlertsNew Alert → Write SQL → Schedule → Enable.

  • AI Insights: Open the AI pane on any dashboard to see automated commentary and suggestions.


Contributing

We welcome all contributions!

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/foo)
  3. Commit your changes (git commit -m "feat: add foo")
  4. Push to your branch (git push origin feature/foo)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for details.


Generated based on the actual project layout and configuration.