Skip to content

codex-mohan/ChemViz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”¬ Chemical Equipment Parameter Visualizer

A State-of-the-Art Hybrid Application for Industrial Analytics

Author Email
Frontend Backend Desktop

Designed & Developed with ❀️ by Mohana Krishna


πŸš€ About The Project

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.

✨ Key Features

🌐 Web Application (React + Vite)

  • 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.

πŸ–₯️ Desktop Application (PyQt5)

  • 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.

πŸ”™ Robust Backend (Django REST Framework)

  • Secure API: A RESTful API powering both the web and desktop clients.
  • Data Processing: Leverages Pandas and NumPy for high-performance statistical calculations (Mean, Median, Std Dev).
  • Report Generation: Uses ReportLab and Matplotlib to dynamically create rich PDF reports with embedded charts and tables.

πŸ› οΈ Technology Stack

Component Technologies
Frontend React Vite Tailwind Chart.js
Backend Django DRF Pandas NumPy
Desktop Python Qt Matplotlib
Tools Git VS Code SQLite

πŸ—οΈ Project Structure

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.

🏁 Getting Started

Follow these steps to set up the environment locally.

Prerequisites

  • Node.js (v16 or higher)
  • Python (v3.9 or higher)
  • Git

πŸ“₯ Installation & Setup

1. Backend Setup (Django)

# 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 runserver

The API will be available at http://127.0.0.1:8000/.

2. Web Application Setup (React)

# Navigate to web
cd web

# Install dependencies
npm install

# Start Development Server
npm run dev

The Web App will launch at http://localhost:5173/.

3. Desktop Application Setup (PyQt5)

# Install desktop-specific requirements
pip install -r desktop/requirements.txt  # Or rely on backend env if shared

# Run the Application
python desktop/main.py

πŸ“– Usage Guide

  1. Launch the Suite: Start the backend server first, then launch either the Web Dashboard or Desktop App.
  2. Upload Data: Drag and drop your CSV file containing equipment data.
    • Required Columns: Equipment Name, Type, Flowrate, Pressure, Temperature.
  3. Analyze:
    • View the Dashboard for instant insights.
    • Check the Correlation Matrix to find parameter relationships.
    • Use Filters to drill down into specific equipment types.
  4. Report: Click the Download Report button to get a full PDF summary, complete with embedded charts and statistical analysis.

πŸ”Œ API Reference

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

⚠️ Known Limitations

CSV Format Requirements

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

Sample Data Format

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,105

A sample CSV file is provided at data/sample_equipment_data.csv for reference.

πŸ‘€ Contact

Mohana Krishna
Full Stack Developer & Data Visualization Enthusiast

Email GitHub


Thank you for checking out this project! 🌟

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors