A React-based web application that allows users to upload CSV files and create interactive visualizations with export functionality.
- 📊 CSV File Upload - Upload and parse CSV files with validation
- 📈 Interactive Charts - Bar charts and line charts powered by Plotly.js
- 🔄 Chart Toggle - Switch between chart types with custom toggle buttons
- 💾 PNG Export - Export charts as high-quality PNG images
- 📱 Responsive Design - Works seamlessly on desktop and mobile devices
- ✅ Data Validation - Proper error handling and file format validation
Application Demo(image.png)
File Upload(Screenshot 2025-05-23 213952.png)
Bar Chart(Screenshot 2025-05-23 214549.png)
Line Chart(Screenshot 2025-05-23 214454.png)
Link - https://drive.google.com/file/d/18PLe_kSdjnlj7ZNuXmnvxCgYBOr53TVT/view?usp=drive_link
- Frontend Framework: React.js
- Charts: Plotly.js
- CSV Parsing: PapaParse
- Styling: CSS3 with Flexbox
- Build Tool: Create React App
Before running this application, make sure you have the following installed:
- Node.js (version 14 or higher)
- npm (comes with Node.js)
-
Clone the repository git clone https://github.com/thejaivortex/data-visualization-app.git cd data-visualization-app
-
Install dependencies
npm install
- Open your browser
- The application will automatically open at
http://localhost:3000 - If it doesn't open automatically, navigate to the URL manually
- Upload CSV File
- Click the "Choose CSV File" button
- Select a CSV file with at least 2 columns
- The first column will be used for x-axis labels
- Subsequent columns will be used for data series
- View Visualizations
- Use the toggle buttons to switch between Bar Chart and Line Chart
- Interact with charts using Plotly's built-in controls (zoom, pan, hover)
- Export Charts
- Click "Export as PNG" to download the current chart as an image
- The exported image will be saved to your Downloads folder
You can test the application with this sample CSV data:
Month,Sales,Expenses Jan,200,150 Feb,220,160 Mar,250,170 Apr,270,180 May,300,190 Jun,320,200 Jul,310,210 Aug,330,220 Sep,350,230 Oct,370,240 Nov,390,250 Dec,420,260
ata-visualization-app/ ├── public/ │ ├── index.html │ └── favicon.ico ├── src/ │ ├── components/ │ │ ├── FileUploader.js │ │ ├── VisualizationPanel.js │ │ ├── BarChart.js │ │ ├── LineChart.js │ │ ├── ExportButton.js │ │ └── ChartSelector.js │ ├── utils/ │ │ ├── csvParser.js │ │ └── exportUtils.js │ ├── styles/ │ │ ├── App.css │ │ └── components/ │ ├── App.js │ ├── index.js │ └── index.css ├── package.json └── README.md
react: Frontend frameworkplotly.js-dist-min: Chart visualization librarypapaparse: CSV parsing utility
Created by Jai Balaje S - Frontend Developer Intern Application
Note: This project was created as part of a frontend development internship application.