Skip to content

A full-stack web application for analyzing Excel data with authentication, role-based access control, and modern UI components.

License

Notifications You must be signed in to change notification settings

Kanishk1420/Excel-Analytics-Platform

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

77 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Excel Analytics Platform

Last Updated: July 25, 2025

A comprehensive full-stack web application for analyzing Excel data with advanced AI insights, authentication, role-based access control, and modern data visualization capabilities.

πŸš€ Project Overview

The Excel Analytics Platform is a sophisticated data analysis tool that combines the power of Excel file processing with artificial intelligence to provide meaningful insights from your data. Built with modern web technologies, it offers a seamless experience for uploading, analyzing, and visualizing data with interactive 3D charts and AI-powered analytics.

πŸ› οΈ Tech Stack

Frontend

  • React.js with Vite - Fast development and build tool
  • Redux Toolkit - Predictable state management
  • React Router v7 - Client-side routing
  • Tailwind CSS - Utility-first CSS framework
  • Axios - HTTP client for API requests
  • React Icons - Beautiful icon library
  • GSAP - Professional-grade animations
  • Plotly.js - Interactive 3D data visualizations

Backend

  • Node.js & Express.js - Server-side JavaScript runtime and framework
  • MongoDB with Mongoose - NoSQL database with object modeling
  • JWT - Secure authentication tokens
  • Bcrypt - Password hashing and encryption
  • CORS - Cross-origin resource sharing
  • SendGrid - Email service integration
  • GridFS - Large file storage solution
  • Google Gemini AI - Advanced AI analytics and insights

Additional Tools

  • Multer - File upload handling
  • XLSX - Excel file parsing and processing
  • Crypto - Secure token generation

✨ Key Features

πŸ” Authentication & Security

  • Complete user registration and login system
  • JWT-based secure authentication
  • Role-based access control (Admin/User)
  • Password reset functionality with email integration
  • Protected routes on both frontend and backend
  • Secure password hashing with bcrypt
  • Token-based API access

πŸ“ File Management

  • Drag-and-drop Excel/CSV file upload
  • GridFS integration for large file storage (>16MB)
  • Real-time upload progress tracking
  • File validation and error handling
  • Support for multiple file formats (.xlsx, .xls, .csv)
  • Automatic file preview generation
  • Persistent file selection across sessions

πŸ“Š Data Visualization

  • Interactive 3D visualizations with Plotly.js
  • Six different 3D chart types:
    • 3D Bar Charts with dynamic spacing
    • 3D Scatter Plots with intelligent sizing
    • 3D Surface Plots with gradient coloring
    • 3D Line Charts with smooth curves
    • 3D Area Charts with transparency
    • 3D Pie Charts with elevation effects
  • Responsive design for all screen sizes
  • Custom tooltips and interactive controls
  • Performance optimization for large datasets

πŸ€– AI-Powered Analytics

  • Google Gemini AI integration for data insights
  • Natural language querying of your data
  • Automated pattern recognition
  • Statistical analysis and recommendations
  • Smart data type detection
  • Contextual insights based on data content

🎨 User Interface

  • Modern, responsive dashboard design
  • Engaging intro animations with GSAP
  • Mobile-first responsive design
  • Real-time notifications system
  • Custom form components
  • Intuitive navigation and user experience

πŸ“ˆ Development Progress

Week 1: Foundation

  • Established project structure and basic authentication
  • Set up MongoDB database connectivity
  • Created initial dashboard layout
  • Configured development environment
  • Implemented JWT authentication basics

Week 2: Authentication & File Handling

Major Achievements:

  • βœ… Complete authentication flow (login, signup, logout)
  • βœ… Password reset with email integration via SendGrid
  • βœ… Role-based access control implementation
  • βœ… Drag-and-drop file upload with progress tracking
  • βœ… GridFS integration for large file storage
  • βœ… GSAP animations for engaging user experience
  • βœ… Responsive design for mobile and tablet devices
  • βœ… Custom form components with validation

Technical Implementations:

  • Integrated SendGrid for secure email communications
  • Enhanced Excel file handling with GridFS for files beyond MongoDB's 16MB limit
  • Added comprehensive error handling across all API endpoints
  • Created admin-specific dashboard sections with role-based UI
  • Implemented secure password handling and JWT token management

Week 3: Data Analysis & Visualization

Major Achievements:

  • βœ… Fixed critical MongoDB ObjectId constructor bugs
  • βœ… Implemented automatic file selection and persistence
  • βœ… Enhanced file analysis with metadata display
  • βœ… Created unified CSV and Excel file handling
  • βœ… Advanced 3D visualization implementation with Plotly.js
  • βœ… Six different 3D chart types with optimized performance
  • βœ… Responsive image slider for login page

Technical Breakthroughs:

  • Resolved WebGL compatibility issues across browsers
  • Implemented intelligent data type detection for chart selection
  • Created adaptive data sampling for large datasets
  • Added progressive loading for complex 3D visualizations
  • Enhanced user experience with seamless file-to-analysis transitions

3D Visualization Features:

  • 3D Bar Charts with dynamic spacing and text positioning
  • 3D Scatter Plots with intelligent marker sizing
  • 3D Surface Plots with gradient coloring
  • 3D Line Charts with smooth trend visualization
  • 3D Area Charts with semi-transparent surfaces
  • 3D Pie Charts with category elevation effects

Week 4: UI/UX Refinement & AI Integration

Major Achievements:

  • βœ… Resolved button styling conflicts across components
  • βœ… Enhanced AI Insights component functionality
  • βœ… Improved visual consistency of interactive elements
  • βœ… Google Gemini AI integration for data analysis
  • βœ… Natural language querying capabilities
  • βœ… Advanced CSS architecture improvements

Technical Optimizations:

  • Implemented utility classes for selective style overrides
  • Created reusable style patterns for consistent appearance
  • Enhanced responsive design for varying screen sizes
  • Added AI-powered insights with contextual analysis
  • Improved CSS selector specificity to prevent conflicts

πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v16 or higher) - Download here
  • MongoDB (local installation or Atlas account) - Download here
  • npm or yarn package manager
  • Git for version control

πŸ“₯ Installation

  1. Clone the Repository

    git clone https://github.com/shanmugapriyar0/Excel_Analytics_Platform.git
    cd Excel_Analytics_Platform
  2. Install Backend Dependencies

    cd backend
    npm install
  3. Install Frontend Dependencies

    cd ../frontend
    npm install

πŸ”§ Environment Configuration

Setting Up Backend Environment

  1. Create a .env file in the backend directory:

    cd backend
    touch .env  # On Windows: echo. > .env
  2. Add the following environment variables to your .env file:

    # MongoDB Configuration
    MONGO_URI=mongodb://localhost:27017/excel_analytics_platform
    # For MongoDB Atlas: mongodb+srv://<username>:<password>@cluster.mongodb.net/excel_analytics_platform
    
    # JWT Configuration
    JWT_SECRET=your_super_secure_jwt_secret_key_here_make_it_very_long_and_random
    
    # SendGrid Email Configuration (for password reset)
    SENDGRID_API_KEY=your_sendgrid_api_key_here
    SENDGRID_FROM_EMAIL=your_verified_email@domain.com
    
    # Google Gemini AI Configuration
    GEMINI_API_KEY=your_google_gemini_api_key_here
    
    # Application Configuration
    FRONTEND_URL=http://localhost:3000
    NODE_ENV=development
    PORT=5000

πŸ”‘ API Keys Setup Guide

1. MongoDB Setup

  • Local MongoDB: Install MongoDB locally and use the default connection string
  • MongoDB Atlas:
    • Go to MongoDB Atlas
    • Create a free account and cluster
    • Get your connection string from the "Connect" button
    • Replace <username> and <password> with your database credentials

2. JWT Secret Generation Generate a secure JWT secret using Node.js:

node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"

3. SendGrid Configuration (for email functionality)

  • Visit SendGrid and create a free account
  • Navigate to Settings β†’ API Keys
  • Create a new API key with "Mail Send" permissions
  • Verify a sender email address in Settings β†’ Sender Authentication
  • Use the verified email as SENDGRID_FROM_EMAIL

4. Google Gemini AI Setup (for AI insights)

  • Go to Google AI Studio
  • Create a new project or use an existing one
  • Generate an API key for Gemini AI
  • Copy the API key to your .env file

πŸš€ Running the Application

  1. Start the Backend Server

    cd backend
    npm start
    # Development mode with auto-restart:
    npm run dev

    The backend will run on http://localhost:5000

  2. Start the Frontend Development Server

    cd frontend
    npm run dev

    The frontend will run on http://localhost:3000

  3. Access the Application

    • Open your browser and navigate to http://localhost:3000
    • Create a new account or use the login functionality
    • Start uploading and analyzing your Excel files!

πŸ“ Project Structure

Excel_Analytics_Platform/
β”œβ”€β”€ πŸ“ backend/                    # Backend API server
β”‚   β”œβ”€β”€ πŸ“ controllers/            # Request handlers
β”‚   β”œβ”€β”€ πŸ“ middleware/             # Authentication & validation
β”‚   β”œβ”€β”€ πŸ“ models/                 # Database schemas
β”‚   β”‚   β”œβ”€β”€ πŸ“„ User.js            # User authentication model
β”‚   β”‚   β”œβ”€β”€ πŸ“„ ExcelFile.js       # File metadata model
β”‚   β”‚   └── πŸ“„ Activity.js        # User activity tracking
β”‚   β”œβ”€β”€ πŸ“ routes/                 # API route definitions
β”‚   β”‚   β”œβ”€β”€ πŸ“„ authRoutes.js      # Authentication endpoints
β”‚   β”‚   β”œβ”€β”€ πŸ“„ excelRoutes.js     # File handling endpoints
β”‚   β”‚   └── πŸ“„ userRoutes.js      # User management endpoints
β”‚   β”œβ”€β”€ πŸ“ services/               # External service integrations
β”‚   β”‚   └── πŸ“„ geminiService.js   # AI analysis service
β”‚   β”œβ”€β”€ πŸ“ utils/                  # Utility functions
β”‚   β”œβ”€β”€ πŸ“ uploads/                # File storage directory
β”‚   β”œβ”€β”€ πŸ“„ index.js               # Express server entry point
β”‚   β”œβ”€β”€ πŸ“„ package.json           # Backend dependencies
β”‚   └── πŸ“„ .env                   # Environment variables
β”œβ”€β”€ πŸ“ frontend/                   # React frontend application
β”‚   β”œβ”€β”€ πŸ“ public/                 # Static assets
β”‚   β”œβ”€β”€ πŸ“ src/                    # Source code
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/         # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Dashboard.js   # Main dashboard
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ FileUpload.js  # File upload interface
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AIInsights.js  # AI analysis display
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ThreeDChart.js # 3D visualization
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Login.js       # Authentication forms
β”‚   β”‚   β”‚   └── πŸ“„ Signup.js      # User registration
β”‚   β”‚   β”œβ”€β”€ πŸ“ redux/              # State management
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ store.js       # Redux store configuration
β”‚   β”‚   β”‚   └── πŸ“„ authSlice.js   # Authentication state
β”‚   β”‚   β”œβ”€β”€ πŸ“ css/                # Stylesheets
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ index.css      # Global styles
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ dashboard.css  # Dashboard styles
β”‚   β”‚   β”‚   └── πŸ“„ responsive.css # Responsive design
β”‚   β”‚   β”œβ”€β”€ πŸ“„ App.js             # Main application component
β”‚   β”‚   └── πŸ“„ index.js           # React entry point
β”‚   β”œβ”€β”€ πŸ“„ package.json           # Frontend dependencies
β”‚   └── πŸ“„ vite.config.js         # Vite configuration
β”œβ”€β”€ πŸ“„ README.md                   # Project documentation
└── πŸ“„ .gitignore                 # Git ignore rules

πŸ”Œ API Endpoints

Authentication Endpoints

POST /api/auth/signup          # Register new user
POST /api/auth/login           # User authentication
POST /api/auth/forgot-password # Request password reset
POST /api/auth/reset-password  # Reset password with token
GET  /api/auth/verify-token    # Verify JWT token validity

File Management Endpoints

POST /api/excel/upload         # Upload Excel/CSV files
GET  /api/excel/files          # Get user's uploaded files
GET  /api/excel/download/:id   # Download specific file
DELETE /api/excel/delete/:id   # Delete uploaded file
POST /api/excel/analyze        # Analyze file data with AI

User Management Endpoints

GET  /api/user/profile         # Get user profile
PUT  /api/user/profile         # Update user profile
GET  /api/user/activity        # Get user activity log

🎯 Features in Detail

File Upload & Processing

  • Drag & Drop Interface: Intuitive file upload with visual feedback
  • Multiple Format Support: Excel (.xlsx, .xls) and CSV files
  • Large File Handling: GridFS integration for files exceeding 16MB
  • Real-time Progress: Live upload progress with percentage display
  • File Validation: Automatic format and size validation
  • Preview Generation: Instant data preview after upload

AI-Powered Analytics

  • Natural Language Queries: Ask questions about your data in plain English
  • Automated Insights: Get intelligent analysis without manual configuration
  • Pattern Recognition: Discover hidden trends and correlations
  • Statistical Analysis: Comprehensive statistical summaries
  • Contextual Recommendations: AI suggests relevant analysis approaches

Advanced Visualizations

  • Interactive 3D Charts: Rotate, zoom, and explore your data in three dimensions
  • Multiple Chart Types: Bar, scatter, surface, line, area, and pie charts
  • Performance Optimized: Handles large datasets with intelligent sampling
  • Responsive Design: Charts adapt to different screen sizes
  • Custom Styling: Consistent color schemes and professional appearance

User Experience

  • Responsive Design: Works seamlessly on desktop, tablet, and mobile
  • Real-time Notifications: Instant feedback on user actions
  • Persistent Sessions: Remember user preferences and selections
  • Loading States: Clear indication of processing status
  • Error Handling: Graceful error messages and recovery options

πŸ› οΈ Available Scripts

Backend Scripts

npm start          # Start production server

Frontend Scripts

npm start        # Start Vite development server
npm run build      # Build for production
npm run preview    # Preview production build
npm run lint       # Run ESLint

πŸ” Troubleshooting

Common Issues and Solutions

1. MongoDB Connection Error

# Ensure MongoDB is running
# Windows: Start MongoDB service
# macOS/Linux: sudo systemctl start mongod

2. Port Already in Use

# Kill process on port 5000 (backend)
# Windows: netstat -ano | findstr :5000 && taskkill /PID <PID> /F
# macOS/Linux: lsof -ti:5000 | xargs kill -9

3. File Upload Issues

  • Check if uploads/ directory exists in backend
  • Verify MongoDB GridFS configuration
  • Ensure sufficient disk space

4. AI Analysis Not Working

  • Verify Gemini API key is valid and has quota
  • Check internet connectivity
  • Review API key permissions

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the Repository

    git fork https://github.com/shanmugapriyar0/Excel_Analytics_Platform.git
  2. Create a Feature Branch

    git checkout -b feature/amazing-feature
  3. Make Your Changes

    • Follow existing code style and patterns
    • Add tests for new functionality
    • Update documentation as needed
  4. Commit Your Changes

    git commit -m "Add: Amazing new feature"
  5. Push to Your Branch

    git push origin feature/amazing-feature
  6. Open a Pull Request

    • Provide a clear description of changes
    • Include screenshots for UI changes
    • Reference any related issues

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • React Team for the amazing frontend framework
  • MongoDB for the robust database solution
  • Google for the powerful Gemini AI integration
  • Plotly for the incredible 3D visualization capabilities
  • SendGrid for reliable email services
  • Open Source Community for the countless libraries that made this possible

πŸ“ž Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Include error messages and steps to reproduce
  4. Provide system information (OS, Node.js version, etc.)

Built with ❀️ by the Excel Analytics Platform Team

Making data analysis accessible and insightful for everyone

About

A full-stack web application for analyzing Excel data with authentication, role-based access control, and modern UI components.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 64.6%
  • CSS 35.1%
  • HTML 0.3%