YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

RAG Document Analysis System

NDMA Logo SIH 2025 Team

A comprehensive RAG (Retrieval-Augmented Generation) based document analysis system for analyzing disaster management training data. Built for the National Disaster Management Authority (NDMA) as part of Smart India Hackathon 2025.

🌟 Features

  • πŸ“€ Multi-Format Upload: Support for PDF, Excel (.xlsx, .xls), and CSV files
  • πŸ€– AI-Powered Analysis: Uses Google Gemini AI for intelligent data analysis
  • πŸ“Š Interactive Dashboard: Beautiful visualizations with charts and metrics
  • πŸ“„ Government Reports: Auto-generate professional PDF reports in government format
  • πŸ” RAG-based Q&A: Ask questions about your uploaded documents
  • πŸ’Ύ Data Persistence: MongoDB storage for analysis history
  • 🎨 Modern UI: Glassmorphism design with smooth animations

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  React Frontend β”‚
β”‚   (Vite + UI)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Express API    β”‚
β”‚  (Node.js)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
    β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
    β–Ό         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚MongoDB β”‚ β”‚Gemini AI β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB (local or Atlas)
  • Google Gemini API Key

Installation

  1. Clone the repository
cd "c:\Users\91979\OneDrive\Desktop\Rag Model"
  1. Setup Backend
cd backend
npm install
  1. Configure Environment Variables

Edit backend/.env and add your credentials:

GEMINI_API_KEY=your_gemini_api_key_here
MONGODB_URI=mongodb://localhost:27017/rag-document-analysis
  1. Setup Frontend
cd ../frontend
npm install

Running the Application

  1. Start MongoDB (if running locally)
mongod
  1. Start Backend Server
cd backend
npm run dev

Backend will run on http://localhost:5000

  1. Start Frontend (in a new terminal)
cd frontend
npm run dev

Frontend will run on http://localhost:5173

  1. Open in Browser Navigate to http://localhost:5173

πŸ“– Usage Guide

1. Upload Training Data

  • Click on the upload area or drag & drop your file
  • Supported formats: PDF, Excel, CSV
  • Maximum file size: 10MB
  • Click "Upload & Analyze"

2. View Analysis Dashboard

  • Automatic analysis using AI
  • View key metrics (trainings, participants, completion rates)
  • Interactive charts for theme and state distribution
  • Gap analysis showing underserved areas
  • Key insights and recommendations

3. Download Report

  • Click on "Report" tab
  • Preview the government-format report
  • Download as PDF
  • Share with stakeholders

πŸ“ Project Structure

Rag Model/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   └── Document.js          # MongoDB schema
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ upload.js            # Upload endpoints
β”‚   β”‚   └── analysis.js          # Analysis endpoints
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ documentParser.js    # PDF/Excel/CSV parser
β”‚   β”‚   β”œβ”€β”€ ragEngine.js         # RAG implementation
β”‚   β”‚   β”œβ”€β”€ analysisService.js   # AI analysis logic
β”‚   β”‚   └── reportGenerator.js   # PDF report generation
β”‚   β”œβ”€β”€ server.js                # Express server
β”‚   └── package.json
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ FileUpload.jsx   # Upload component
β”‚   β”‚   β”‚   β”œβ”€β”€ AnalysisDashboard.jsx  # Dashboard
β”‚   β”‚   β”‚   └── ReportPreview.jsx      # Report preview
β”‚   β”‚   β”œβ”€β”€ App.jsx              # Main app
β”‚   β”‚   β”œβ”€β”€ main.jsx             # Entry point
β”‚   β”‚   └── index.css            # Styles
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ vite.config.js
β”‚   └── package.json
β”‚
└── README.md

πŸ”§ API Endpoints

Upload & Analysis

  • POST /api/upload - Upload and analyze document
  • GET /api/upload/documents - Get all documents
  • GET /api/upload/document/:id - Get specific document
  • DELETE /api/upload/document/:id - Delete document

Analysis & Reports

  • POST /api/analysis/ask - Ask question about document (RAG)
  • GET /api/analysis/report/:filename - Download report
  • GET /api/analysis/stats - Get aggregate statistics

🎨 Tech Stack

Backend:

  • Node.js + Express
  • MongoDB + Mongoose
  • Google Gemini AI
  • PDFKit (report generation)
  • Multer (file uploads)
  • pdf-parse, xlsx, csv-parser

Frontend:

  • React 18
  • Vite
  • Recharts (data visualization)
  • React Dropzone
  • Lucide React (icons)
  • Axios

πŸ“Š Sample Data Format

Excel/CSV Format

Training ID,Date,Location,State,Theme,Participants,Trainer,Duration,Completion Rate
TR001,2024-01-15,Delhi,Delhi,Earthquake,50,Dr. Sharma,2 days,95%
TR002,2024-01-20,Mumbai,Maharashtra,Flood,75,Mr. Patel,3 days,88%

Analysis Output

{
  "totalTrainings": 150,
  "totalParticipants": 5000,
  "themeDistribution": {
    "Earthquake": 40,
    "Flood": 60,
    "Cyclone": 30
  },
  "stateWiseCoverage": {
    "Delhi": 20,
    "Maharashtra": 35
  },
  "averageCompletionRate": "91%",
  "gapAnalysis": {
    "underservedStates": ["Nagaland", "Mizoram"],
    "underservedThemes": ["Tsunami"]
  },
  "recommendations": [...]
}

πŸ” Environment Variables

Variable Description Required
GEMINI_API_KEY Google Gemini API key Yes
MONGODB_URI MongoDB connection string Yes
PORT Backend server port No (default: 5000)
CLIENT_URL Frontend URL for CORS No (default: http://localhost:5173)

🀝 Contributing

This project was developed for Smart India Hackathon 2025 by Team JARVIS GGV.

πŸ“ License

MIT License - Feel free to use for educational and government purposes.

πŸ‘₯ Team JARVIS GGV

Smart India Hackathon 2025
Problem Statement ID: SIH25258
Theme: Disaster Management


For Official Use by NDMA, Government of India

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support