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.
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.
- 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
- 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
- Multer - File upload handling
- XLSX - Excel file parsing and processing
- Crypto - Secure token generation
- 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
- 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
- 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
- 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
- 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
- Established project structure and basic authentication
- Set up MongoDB database connectivity
- Created initial dashboard layout
- Configured development environment
- Implemented JWT authentication basics
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
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
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
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
-
Clone the Repository
git clone https://github.com/shanmugapriyar0/Excel_Analytics_Platform.git cd Excel_Analytics_Platform
-
Install Backend Dependencies
cd backend npm install
-
Install Frontend Dependencies
cd ../frontend npm install
-
Create a
.env
file in thebackend
directory:cd backend touch .env # On Windows: echo. > .env
-
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
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
-
Start the Backend Server
cd backend npm start # Development mode with auto-restart: npm run dev
The backend will run on
http://localhost:5000
-
Start the Frontend Development Server
cd frontend npm run dev
The frontend will run on
http://localhost:3000
-
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!
- Open your browser and navigate to
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
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
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
GET /api/user/profile # Get user profile
PUT /api/user/profile # Update user profile
GET /api/user/activity # Get user activity log
- 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
- 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
- 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
- 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
npm start # Start production server
npm start # Start Vite development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
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
We welcome contributions! Please follow these steps:
-
Fork the Repository
git fork https://github.com/shanmugapriyar0/Excel_Analytics_Platform.git
-
Create a Feature Branch
git checkout -b feature/amazing-feature
-
Make Your Changes
- Follow existing code style and patterns
- Add tests for new functionality
- Update documentation as needed
-
Commit Your Changes
git commit -m "Add: Amazing new feature"
-
Push to Your Branch
git push origin feature/amazing-feature
-
Open a Pull Request
- Provide a clear description of changes
- Include screenshots for UI changes
- Reference any related issues
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Include error messages and steps to reproduce
- Provide system information (OS, Node.js version, etc.)
Built with β€οΈ by the Excel Analytics Platform Team
Making data analysis accessible and insightful for everyone