This project is a web application that allows users to upload CSV or Excel files, which are then processed on the server-side using Python Flask. The processed data is visualized and displayed to the user. The front end is built using Next.js and Node.js.
project-root/
│
├── client/ # Frontend directory
│ ├── pages/ # Next.js pages
│ ├── public/ # Public static files
│ ├── styles/ # CSS styles
│ ├── components/ # React components
│ └── .gitignore # Git ignore file
│ └── package.json # Node.js dependencies and scripts
│
├── server/ # Backend directory
│ ├── app.py # Flask application
│ ├── api # API folder
│ ├── requirements.txt # Python dependencies
│
└── .gitignore # Git ignore file
cd client
Ensure you have Node.js v18.17.0 or later installed. Run:
npm install
npm run dev
The application will be available at http://localhost:3000.
cd server
Ensure you have Python 3.8 or later installed. Run:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
The Flask application will be available at http://localhost:5000.
• The frontend is built with Next.js and is responsible for providing a user interface where users can upload CSV or Excel files.
• Upon file upload, the frontend sends a POST request to the backend with the file.
• The backend is built with Flask and processes the uploaded files.
• It reads the file, performs data analysis, and generates visualizations (Curve Plot, Boxplot, Moments, and Heatmap).
• The visualizations are returned as images to the frontend.
• Curve Plot: Shows a line plot for the first numeric column.
• Boxplot: Displays the distribution of data through boxplots for numeric columns.
• Moments Plot: Visualizes statistical moments including mean, variance, skewness, and kurtosis.
• Heatmap: Shows the correlation matrix of numeric columns.