mirror of
https://github.com/kjanat/livedash-node.git
synced 2026-01-16 12:12:09 +01:00
- Fix TopQuestionsChart with proper dark mode colors using CSS variables and shadcn/ui components - Enhance ResponseTimeDistribution with thicker bars (maxBarSize: 60) - Replace GeographicMap with dark/light mode compatible CartoDB tiles - Add custom text selection background color with primary theme color - Update all loading states to use proper CSS variables instead of hardcoded colors - Fix dashboard layout background to use bg-background instead of bg-gray-100
5.2 KiB
5.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Development Commands
Core Development:
pnpm dev- Start development server (runs custom server.ts with schedulers)pnpm dev:next-only- Start Next.js only with Turbopack (no schedulers)pnpm build- Build production applicationpnpm start- Run production server
Code Quality:
pnpm lint- Run ESLintpnpm lint:fix- Fix ESLint issues automaticallypnpm format- Format code with Prettierpnpm format:check- Check formatting without fixing
Database:
pnpm prisma:generate- Generate Prisma clientpnpm prisma:migrate- Run database migrationspnpm prisma:push- Push schema changes to databasepnpm prisma:push:force- Force reset database and push schemapnpm prisma:seed- Seed database with initial datapnpm prisma:studio- Open Prisma Studio database viewer
Testing:
pnpm test- Run both Vitest and Playwright tests concurrentlypnpm test:vitest- Run Vitest tests onlypnpm test:vitest:watch- Run Vitest in watch modepnpm test:vitest:coverage- Run Vitest with coverage reportpnpm test:coverage- Run all tests with coverage
Markdown:
pnpm lint:md- Lint Markdown filespnpm lint:md:fix- Fix Markdown linting issues
Architecture Overview
LiveDash-Node is a real-time analytics dashboard for monitoring user sessions with AI-powered analysis and processing pipeline.
Tech Stack
- Frontend: Next.js 15 + React 19 + TailwindCSS 4
- Backend: Next.js API Routes + Custom Node.js server
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- AI Processing: OpenAI API integration
- Visualization: D3.js, React Leaflet, Recharts
- Scheduling: Node-cron for background processing
Key Architecture Components
1. Multi-Stage Processing Pipeline
The system processes user sessions through distinct stages tracked in SessionProcessingStatus:
CSV_IMPORT- Import raw CSV data intoSessionImportTRANSCRIPT_FETCH- Fetch transcript content from URLsSESSION_CREATION- Create normalizedSessionandMessagerecordsAI_ANALYSIS- AI processing for sentiment, categorization, summariesQUESTION_EXTRACTION- Extract questions from conversations
2. Database Architecture
- Multi-tenant design with
Companyas root entity - Dual storage pattern: Raw CSV data in
SessionImport, processed data inSession - 1-to-1 relationship between
SessionImportandSessionviaimportId - Message parsing into individual
Messagerecords with order tracking - AI cost tracking via
AIProcessingRequestwith detailed token usage - Flexible AI model management through
AIModel,AIModelPricing, andCompanyAIModel
3. Custom Server Architecture
server.ts- Custom Next.js server with configurable scheduler initialization- Three main schedulers: CSV import, import processing, and session processing
- Environment-based configuration via
lib/env.ts
4. Key Processing Libraries
lib/scheduler.ts- CSV import schedulinglib/importProcessor.ts- Raw data to Session conversionlib/processingScheduler.ts- AI analysis pipelinelib/transcriptFetcher.ts- External transcript fetchinglib/transcriptParser.ts- Message parsing from transcripts
Development Environment
Environment Configuration:
Environment variables are managed through lib/env.ts with .env.local file support:
- Database: PostgreSQL via
DATABASE_URLandDATABASE_URL_DIRECT - Authentication:
NEXTAUTH_SECRET,NEXTAUTH_URL - AI Processing:
OPENAI_API_KEY - Schedulers:
SCHEDULER_ENABLED, various interval configurations
Key Files to Understand:
prisma/schema.prisma- Complete database schema with enums and relationshipsserver.ts- Custom server entry pointlib/env.ts- Environment variable management and validationapp/- Next.js App Router structure
Testing:
- Uses Vitest for unit testing
- Playwright for E2E testing
- Test files in
tests/directory
Important Notes
Scheduler System:
- Schedulers are optional and controlled by
SCHEDULER_ENABLEDenvironment variable - Use
pnpm dev:next-onlyto run without schedulers for pure frontend development - Three separate schedulers handle different pipeline stages:
- CSV Import Scheduler (
lib/scheduler.ts) - Import Processing Scheduler (
lib/importProcessor.ts) - Session Processing Scheduler (
lib/processingScheduler.ts)
- CSV Import Scheduler (
Database Migrations:
- Always run
pnpm prisma:generateafter schema changes - Use
pnpm prisma:migratefor production-ready migrations - Use
pnpm prisma:pushfor development schema changes - Database uses PostgreSQL with Prisma's driver adapter for connection pooling
AI Processing:
- All AI requests are tracked for cost analysis
- Support for multiple AI models per company
- Time-based pricing management for accurate cost calculation
- Processing stages can be retried on failure with retry count tracking
Code Quality Standards:
- Run
pnpm lintandpnpm format:checkbefore committing - TypeScript with ES modules (type: "module" in package.json)
- React 19 with Next.js 15 App Router
- TailwindCSS 4 for styling