A full-stack web application that allows users to upload CSV datasets, analyze the data with statistical summaries and visualizations, and interact with an AI-powered assistant for querying the dataset.
- Upload CSV files for analysis
- Generate statistical summaries (mean, median, etc.)
- Display data visualizations (histograms, box plots, scatter plots)
- AI-powered query assistant for dataset insights/hesitations
- User-friendly interface with React and Flask backend
Frontend:
- React.js (with React Router)
- Axios (for API requests)
- CSS for styling
Backend:
- Flask (Python)
- Flask-CORS
- Pandas (for data handling)
- Matplotlib & Seaborn (for data visualizations)
- Google Gemini AI API (for AI-powered queries)
- dotenv (for environment variables management)
Prerequisites:
- Node.js & npm (for frontend)
- Python 3.x & pip (for backend)
Backend Setup: Clone the repository:
git clone
cd backendInstall Python dependencies:
pip install -r requirements.txtSet up environment variables:
Create a .env file in the root directory and add Gemini API Key (Note i've added a key as example how it look like, however this key doesnt work anymore, so you have to create your own(https://ai.google.dev/gemini-api/docs/api-key))
GOOGLE_API_KEY=<your-api-key>Run the Flask server:
python app.pyFrontend Setup: Navigate to the frontend folder:
cd ..
cd data-explorer/Install dependencies:
npm installStart the React app:
npm start- Upload a CSV file from the homepage.
- View dataset analysis, including summary statistics and visualizations.
- Interact with the AI assistant to ask questions about the dataset.
- Upload Dataset:
Endpoint: POST /uploadDescription: Uploads a CSV file, performs analysis, and returns statistics & visualizations.
- Query AI Assistant:
Endpoint: POST /query/<filename>Description: Processes user queries related to the dataset using Google Gemini AI.
/ (root) │── app.py # Flask backend │── /frontend # React frontend │── ├── src │── │ ├── App.js # Main React component │── │ ├── index.js # React entry point │── │ ├── App.css # Styling │── │ ├── pages/ │── │ │ ├── HomePage.js # File upload page │── │ │ ├── AnalysisPage.js # Dataset analysis & AI assistant │── ├── public/ │── ├── package.json │── .env # Environment variables │── requirements.txt # Backend dependencies
This project is licensed under the MIT License.
Bryan ST Herrera Estrada (GitHub: [BryanHE24])