A State-of-the-Art Hybrid Application for Industrial Analytics
Designed & Developed with β€οΈ by Mohana Krishna
Chemical Equipment Parameter Visualizer is a cutting-edge, hybrid application suite designed to revolutionize how chemical engineering data is analyzed and visualized. Built as a flagship project for Internship Evaluation, this tool bridges the gap between web portability and desktop power.
It provides a seamless interface for engineers to upload raw equipment data (CSV), visualize critical parameters like Flowrate, Pressure, and Temperature in real-time, and generate enterprise-grade PDF reports with deep statistical insights.
Whether you are on the web using the Modern React Dashboard or on the shop floor using the Native Desktop Application, this tool ensures you have access to your data, everywhere.
- Modern Dashboard: A visually stunning dark-themed dashboard featuring glassmorphism effects, gradient backgrounds, and fluid animations powered by
framer-motion. - Advanced Visualization Suite:
- π Bar Charts: Compare average performance metrics across different equipment types.
- π© Pie Charts: Visualize the distribution of equipment types in your dataset.
- π Scatter Plots: Analyze complex correlations, such as Temperature vs. Pressure trends.
- πΆ Histograms: Understand the statistical distribution of key parameters.
- π‘οΈ Correlation Matrix: A heatmap to identify hidden relationships between variables.
- Interactive Reports: Generate and download comprehensive PDF reports directly from the web interface.
- History Management: View past uploads and clear search history with a single click to maintain a clean workspace.
- Drag & Drop Upload: Seamless CSV file upload with validation and progress tracking.
- Native Experience: A robust, standalone application built with Python and Qt.
- Offline Capabilities: Analyze data locally without needing a web server.
- Matplotlib Integration: High-fidelity scientific plotting directly within the application window.
- Secure API: A RESTful API powering both the web and desktop clients.
- Data Processing: Leverages
PandasandNumPyfor high-performance statistical calculations (Mean, Median, Std Dev). - Report Generation: Uses
ReportLabandMatplotlibto dynamically create rich PDF reports with embedded charts and tables.
| Component | Technologies |
|---|---|
| Frontend | |
| Backend | |
| Desktop | |
| Tools |
chemical-equipment-visualizer/
βββ backend/ # π§ Django REST API Logic
β βββ api/ # Views, ViewSets, and Serializers
β βββ project/ # Core Settings and Config
β βββ requirements.txt # Python Dependencies (matplotlib, pandas, etc.)
βββ web/ # π React Frontend Application
β βββ src/
β β βββ components/ # UI Components (Cards, Buttons, Charts)
β β βββ pages/ # Dashboard, Upload, History Views
β β βββ services/ # API Integration (Axios)
β β βββ utils/ # Analytics Helpers
β βββ package.json # JS Dependencies (chart.js, tailwind, etc.)
βββ desktop/ # π₯οΈ PyQt5 Desktop Application
β βββ ui/ # UI Layouts and Styles
β β βββ views/ # Chart and Report Views
β β βββ components/ # Reusable Widgets
β βββ main.py # Application Entry Point
βββ README.md # π Documentation (You are here!)Note
Architectural Decision: While this project could benefit from a Monorepo structure (e.g., using Turborepo) for better dependency management and build orchestration, it is intentionally organized into three distinct directories. This design choice adheres to strict internship screening guidelines regarding library usage and project simplicity.
Follow these steps to set up the environment locally.
- Node.js (v16 or higher)
- Python (v3.9 or higher)
- Git
# Navigate to backend
cd backend
# Create virtual environment
python -m venv venv
# Windows: venv\Scripts\activate
# Mac/Linux: source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run Migrations
python manage.py migrate
# Start Server
python manage.py runserverThe API will be available at
http://127.0.0.1:8000/.
# Navigate to web
cd web
# Install dependencies
npm install
# Start Development Server
npm run devThe Web App will launch at
http://localhost:5173/.
# Install desktop-specific requirements
pip install -r desktop/requirements.txt # Or rely on backend env if shared
# Run the Application
python desktop/main.py- Launch the Suite: Start the backend server first, then launch either the Web Dashboard or Desktop App.
- Upload Data: Drag and drop your CSV file containing equipment data.
- Required Columns:
Equipment Name,Type,Flowrate,Pressure,Temperature.
- Required Columns:
- Analyze:
- View the Dashboard for instant insights.
- Check the Correlation Matrix to find parameter relationships.
- Use Filters to drill down into specific equipment types.
- Report: Click the Download Report button to get a full PDF summary, complete with embedded charts and statistical analysis.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/upload/ |
Upload a new CSV dataset |
GET |
/api/datasets/ |
List all available datasets |
GET |
/api/datasets/{id}/ |
Get detailed equipment data |
GET |
/api/datasets/{id}/report/ |
Generate & Download PDF Report |
GET |
/api/history/ |
View recent upload history |
DELETE |
/api/history/ |
Clear full search history |
This application is designed specifically for Chemical Equipment data and requires CSV files to follow a strict schema. The following columns are mandatory:
| Column Name | Data Type | Description |
|---|---|---|
Equipment Name |
String | Name/identifier of the equipment |
Type |
String | Category/type of equipment (e.g., Pump, Valve, Compressor) |
Flowrate |
Numeric | Flow rate value |
Pressure |
Numeric | Pressure measurement |
Temperature |
Numeric | Temperature value |
Important Notes:
- CSV files with different column names or structures will be rejected during upload
- The application does not support dynamic column mapping or generic CSV visualization
- All three numeric columns (
Flowrate,Pressure,Temperature) must contain valid numeric values - Column headers are case-sensitive and must match exactly as shown above
Equipment Name,Type,Flowrate,Pressure,Temperature
Pump-1,Pump,120,5.2,110
Compressor-1,Compressor,95,8.4,95
Valve-1,Valve,60,4.1,105A sample CSV file is provided at data/sample_equipment_data.csv for reference.
Mohana Krishna
Full Stack Developer & Data Visualization Enthusiast
Thank you for checking out this project! π