A modern web application for uploading, parsing, and visualizing data files with advanced charting capabilities. Built with React frontend and Flask backend, featuring interactive data visualization including bar charts, stacked bar charts, timeline charts, pie charts, and word clouds.
- Multi-format support: CSV, Excel, JSON, Parquet, Pickle, and MBOX email files
- Automatic extraction: For .mbox files, extracts customer names, ratings, places, review text, and dates
- Smart filtering: Only displays rows with complete key information for clarity
- Keyword extraction: Automatically extracts and highlights important keywords from text content
- Table View: Traditional tabular data display with pagination
- Bubble View: Color-coded bubbles based on ratings for instant visual feedback
- Grouped View: Data grouped by customer for better organization
- Charts View: Interactive visualizations including:
- Bar Charts
- Stacked Bar Charts
- Timeline Charts
- Pie Charts
- Word Clouds
- Responsive Design: Works seamlessly on desktop and mobile devices
- Modern UI: Glassmorphism design with smooth animations and transitions
- Real-time Search: Filter data on the fly
- Pagination: Handle large datasets efficiently
- Local Storage: Remembers user preferences and view settings
- Framework: React 19.1.0
- Styling: CSS3 with modern design principles (gradients, glassmorphism, 3D transforms)
- Charts: Chart.js with react-chartjs-2 wrapper
- Word Cloud: d3-cloud for custom SVG word cloud generation
- State Management: Custom React hooks for modular state logic
- Build Tool: Create React App
- Framework: Flask 3.1.1
- CORS: flask-cors for cross-origin requests
- Data Processing: pandas, numpy for data manipulation
- Text Analysis: yake for keyword extraction
- File Handling: Support for multiple file formats
- API Endpoints: RESTful API for file upload and data retrieval
{
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-scripts": "5.0.1",
"chart.js": "^4.5.0",
"react-chartjs-2": "^5.3.0",
"d3-cloud": "^1.2.7"
}Flask==3.1.1
flask-cors==6.0.1
pandas==2.3.0
numpy==2.3.1
yake==0.6.0
python-dateutil==2.9.0.post0
pytz==2025.2- Connect Repository: Link your GitHub repository to Vercel
- Configure Settings:
- Root Directory:
frontend - Build Command:
npm run build - Output Directory:
build
- Root Directory:
- Environment Variables:
REACT_APP_API_URL: Your backend URL (e.g.,https://your-backend.onrender.com)
- Deploy: Vercel will automatically deploy on git push
- Create Web Service: Connect your GitHub repository
- Configure Settings:
- Build Command:
pip install -r requirements.txt - Start Command:
python app.py
- Build Command:
- Environment Variables: None required for basic setup
- Deploy: Render will automatically deploy on git push
- Python 3.11+
- Node.js 16+
- npm or yarn
# Clone repository
git clone <your-repo-url>
cd Dataset-website
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Start backend server
python app.pyBackend will run at http://127.0.0.1:5000
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm startFrontend will run at http://localhost:3000
- Click "π Choose File to Upload" button
- Select your data file (CSV, Excel, JSON, Parquet, Pickle, or .mbox)
- The file will be automatically processed and displayed
- Table View: Traditional spreadsheet-style display with pagination
- Bubble View: Color-coded bubbles where:
- π’ Green: High ratings (4-5 stars)
- π‘ Yellow: Medium ratings (3-4 stars)
- π΄ Red: Low ratings (1-3 stars)
- Grouped View: Data organized by customer for better analysis
- Charts View: Interactive visualizations for data insights
- Use the search bar to filter data in real-time
- Toggle "Show Only Positive with Suggestions" to focus on actionable feedback
- Navigate through pages for large datasets
In Charts View, you can:
- Bar Charts: Compare values across categories
- Stacked Bar Charts: Show composition of data
- Timeline Charts: Track changes over time
- Pie Charts: Show proportions and percentages
- Word Clouds: Visualize most common terms and keywords
Dataset-website/
βββ app.py # Flask app entry point
βββ parsed_data.py # Main Flask backend logic
βββ requirements.txt # Python dependencies
βββ frontend/
β βββ public/
β β βββ index.html # HTML template
β βββ src/
β β βββ App.js # Main React component
β β βββ App.css # Global styles
β β βββ DataTable.js # Main data display component
β β βββ DataTable.css # Data table styles
β β βββ components/
β β β βββ views/
β β β β βββ TableView.js # Table view component
β β β β βββ BubbleView.js # Bubble view component
β β β β βββ GroupedView.js # Grouped view component
β β β β βββ ChartsView.js # Charts container
β β β βββ charts/
β β β βββ BarChart.js # Bar chart component
β β β βββ StackedBarChart.js
β β β βββ TimelineChart.js
β β β βββ PieChart.js
β β β βββ WordCloudChart.js
β β βββ utils/
β β βββ hooks.js # Custom React hooks
β β βββ textProcessing.js # Text processing utilities
β βββ package.json # Node.js dependencies
β βββ vercel.json # Vercel deployment config
βββ README.md
- Glassmorphism: Translucent backgrounds with backdrop blur
- Gradient Backgrounds: Beautiful color transitions
- Smooth Animations: CSS transitions and transforms
- Responsive Design: Works on all screen sizes
- Interactive Elements: Hover effects and visual feedback
- Primary: Modern blue gradients
- Success: Green for positive ratings
- Warning: Yellow for neutral ratings
- Error: Red for negative ratings
- Background: Dark theme with glass effects
- CSV: Standard comma-separated values
- Excel: .xlsx and .xls files
- JSON: JavaScript Object Notation
- Parquet: Columnar storage format
- Pickle: Python serialized objects
- MBOX: Email archive format
For .mbox files, the system automatically:
- Extracts emails: Parses email structure and content
- Identifies reviews: Uses regex patterns to find customer reviews
- Extracts metadata: Customer names, ratings, places, dates
- Processes text: Removes boilerplate and extracts keywords
- Analyzes sentiment: Identifies suggestions in positive reviews
- Create new component in
frontend/src/components/charts/ - Import and add to
ChartsView.js - Update chart selection logic
- Edit functions in
parsed_data.py - Update extraction patterns for new data formats
- Modify keyword extraction logic
- Update CSS files in
frontend/src/ - Modify color schemes and animations
- Adjust responsive breakpoints
- CORS Errors: Ensure backend CORS settings include frontend domain
- Build Failures: Check Node.js and Python versions
- Deployment Issues: Verify environment variables and build commands
- File Upload Errors: Check file size limits and format support
- Frontend: Use browser developer tools
- Backend: Check Flask debug output
- Network: Monitor API requests in browser Network tab
This project is open source and available under the MIT License.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Loved making this project cause it challenged me to learn new things and it's a pretty niche build