#live demo https://universal-csv-analytics.vercel.app/
A professional, dynamic Data Analytics Platform that can ingest any CSV file, automatically analyze its structure, map its columns, and generate a comprehensive interactive dashboard containing KPIs, Plotly charts, AI Business Insights, and downloadable reports.
Built as a 2nd-year Computer Science major project for a Data Analytics Bootcamp.
- Smart Dataset Detection: Automatically identifies standard metrics like Sales, Profit, Customer, Product, Region, and Date based on common synonyms.
- Adaptive Dashboard: Modifies the available charts and insights dynamically. If a dataset doesn't have "Sales", it gracefully falls back to generic statistical analysis (correlations, distributions) without crashing.
- Interactive Visualizations: Powered by Plotly, featuring tooltips, zoom, and dynamic rendering.
- AI Business Insights: Automatically generates rule-based business insights and recommendations (e.g., Identifying the most profitable category or loss-making products).
- Data Cleaning Engine: Automatically handles missing values and drops exact duplicates.
- Downloadable Reports: Export the cleaned data to CSV/Excel, or generate a professional PDF Report summarizing the dataset and insights using ReportLab.
- Modern UI: Glassmorphism design, gradient text, smooth animations, drag-and-drop file upload, and Dark/Light mode toggle.
- Backend: Python, Flask
- Data Processing: Pandas, NumPy
- Visualizations: Plotly, Matplotlib (fallback/generic), Seaborn (fallback/generic)
- Report Generation: ReportLab (PDF), OpenPyXL (Excel)
- Frontend: HTML5, CSS3 (Vanilla), JavaScript (Vanilla), Bootstrap Icons
Universal-CSV-Analytics/
│── uploads/ # Temporary storage for uploaded CSVs
│── reports/ # Temporary storage for generated PDFs/Excel files
│── templates/
│ └── index.html # Main Single Page Application UI
│── static/
│ ├── style.css # Styling & Themes (Dark/Light mode)
│ └── script.js # API interactions & Chart rendering
│── main.py # Flask Application, Routing & Data Cleaning
│── charts.py # Plotly Chart generation logic
│── requirements.txt # Project Dependencies
│── README.md # Documentation
-
Clone the repository:
git clone <repo_url> cd Universal-CSV-Analytics
-
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
-
Access the application: Open your browser and navigate to
http://127.0.0.1:5000/
- Upload: Drag and drop any
.csvfile into the upload zone. - Process: The backend reads the CSV using Pandas, imputes missing values, and calculates a Data Health Score.
- Map: The system looks for column synonyms (e.g., mapping "Revenue" to "Sales").
- Analyze: The backend generates KPIs and Plotly JSON structures via
charts.py. - Render: The frontend consumes the JSON and uses Plotly.js to render beautiful interactive charts.
- Export: Click the download buttons to generate a Python ReportLab PDF or download cleaned data.
Contributions, issues, and feature requests are welcome!
This project is open-source and available under the MIT License.