Skip to content

nadhil7/nodejs-instaviz

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InstaviZ – AI Powered Data Visualization (Backend)

InstaviZ is an AI-powered data visualization platform that allows users to upload CSV datasets, query them using natural language, and generate charts dynamically.

This repository contains the backend of InstaviZ, built with Node.js, Express, and MongoDB, and integrated with AI models (Gemini) for intelligent data analysis and chart generation.


Features

  • CSV Upload & Parsing

  • Handles large CSV files efficiently

  • Automatically extracts rows, columns, and sample data

  • MongoDB Data Storage

  • Dataset metadata stored separately from dataset rows

  • Dynamic schema for CSV rows (supports any column structure)

  • AI‑Driven Chart Generation

  • Natural language → MongoDB aggregation pipelines

  • Bar charts, pie charts, and analytical summaries

  • Fallback local chart generation when AI fails

  • AI Chat with Data

  • Users can ask questions about uploaded datasets

  • Detects when user requests charts vs normal chat

  • Cost‑optimized AI model switching

  • Authentication & Guest Support

  • JWT‑based authentication for logged‑in users

  • Automatic guest user creation using cookies

  • Token‑based usage limits

  • API Key Rotation

  • Gemini API key rotation on quota / rate‑limit errors

  • Ensures high availability and cost control

  • Secure & Scalable Architecture

  • Middleware‑based auth handling

  • Modular service structure

  • Clean separation of concerns


🛠️ Tech Stack

  • Runtime: Node.js
  • Framework: Express.js
  • Language: TypeScript
  • Database: MongoDB (Mongoose)
  • AI Models: Google Gemini (1.5 / 2.5 Flash)
  • Auth: JWT + Guest cookies
  • Storage: Cloud object storage (R2 / S3 compatible)
  • CSV Parsing: Streaming‑based CSV parser

📂 Project Structure (Simplified)

src/
 ├─ controllers/        # Request handlers
 ├─ services/           # AI, chart, dataset logic
 ├─ middlewares/        # Auth & token checks
 ├─ model/              # Mongoose models
 ├─ routes/             # API routes
 ├─ utils/              # Helpers & prompt builders
 └─ config/             # AI tools & configuration

About

Instant data visualization project created using Node.js + Express backend in TypeScript. Handles CSV ingestion, MongoDB storage,MongoDB-MCP,Gemini-api

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 100.0%