A powerful hybrid application (Web & Desktop) designed to visualize, analyze, and report on chemical equipment parameters. This tool processes CSV data to provide real-time insights into Flowrate, Pressure, and Temperature metrics for industrial chemical equipment.
- 📂 CSV Data Processing: Seamlessly upload and parse bulk equipment data.
- 📈 Advanced Analytics: Automated calculation of averages, total counts, and type distributions.
- 📊 Interactive Visualizations:
- Web: Dynamic Bar and Pie charts using
Chart.js. - Desktop: Native plotting using
Matplotlib.
- Web: Dynamic Bar and Pie charts using
- 📜 History Management: Auto-saves and retrieves the last 5 uploaded datasets for comparison.
- 📄 PDF Reporting: One-click generation of professional summary reports.
- 🌗 Dark/Light Mode: Fully responsive UI with theme support (Web Version).
- 🔒 Secure & Scalable: Built on Django REST Framework with basic authentication.
- Framework: React.js + Vite
- Styling: Tailwind CSS + Shadcn UI
- Visualization: Chart.js, React-Chartjs-2
- Icons: Lucide React
- Framework: PyQt5 (Python)
- Visualization: Matplotlib
- Networking: Requests
- Framework: Django + Django REST Framework (DRF)
- Data Processing: Pandas
- Reporting: ReportLab (PDF Generation)
- Database: SQLite (Dev) / PostgreSQL (Prod ready)
Follow these steps to run the complete system locally.
# Clone the repository
git clone [https://github.com/yourusername/chemical-visualizer.git](https://github.com/yourusername/chemical-visualizer.git)
cd chemical-visualizer/backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run migrations
python manage.py migrate
# Start the server
python manage.py runserver
Server runs at http://127.0.0.1:8000
# Navigate to frontend directory
cd ../frontend-react
# Install Node modules
npm install
# Start development server
npm run dev
App runs at http://localhost:5173
# Navigate to desktop app directory
cd ../frontend-desktop
# Install desktop dependencies
pip install -r requirements.txt
# Run the application
python main.py
The backend provides the following RESTful endpoints:
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/upload/ |
Upload CSV file and receive analysis stats. |
GET |
/api/upload/ |
Retrieve history of last 5 uploads. |
GET |
/api/batch/<id>/ |
Get detailed stats for a specific past batch. |
GET |
/api/export-pdf/<id>/ |
Download a PDF summary report for a batch. |
chemical-visualizer/
├── backend/ # Django Project
│ ├── core/ # Main App (Models, Views, Serializers)
│ ├── uploads/ # Media directory for CSVs
│ └── manage.py
├── frontend-react/ # Web Application
│ ├── src/
│ │ ├── components/ # UI Components (Charts, Cards)
│ │ └── pages/ # Dashboard & Layouts
│ └── vite.config.js
└── frontend-desktop/ # Desktop Application
├── ui/ # PyQt5 UI Classes
└── main.py # Entry point
To test the application, use the provided sample_equipment_data.csv file located in the root directory. It contains the following columns:
Equipment NameType(Pump, Valve, Exchanger, Tank)Flowrate(m³/hr)Pressure(bar)Temperature(°C)
Amritesh Kumar Rai
- Role: Full Stack Developer
- LinkedIn: [LinkedIn Profile]
- GitHub: @CodeVoyager3


