Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chemical Equipment Parameter Visualizer

Hybrid Web + Desktop Application for Chemical Equipment Analytics

A full-stack application that allows users to upload chemical equipment CSV data, analyze key parameters, visualize insights through charts, and generate PDF reports. Both Web (React) and Desktop (PyQt5) applications are connected to a single Django backend.


Project Highlights

  • Hybrid architecture (Web + Desktop using same backend)
  • CSV-based data analytics using Pandas
  • Interactive visualizations
  • PDF report generation
  • Upload history tracking (last 5 uploads)
  • Basic authentication system

Key Features

  • Login & Logout (Basic / Token-based authentication)
  • CSV Upload & Automated Analysis
  • KPI Cards & Charts
  • PDF Report Generation
  • Upload History Management
  • Same API used by Web & Desktop apps

Tech Stack

Backend

  • Python
  • Django
  • Django REST Framework
  • Pandas (CSV processing & analytics)
  • ReportLab (PDF generation)
  • SQLite

Web Frontend

  • React.js
  • JavaScript (ES6)
  • Chart.js
  • CSS

Desktop Application

  • PyQt5
  • Matplotlib

Tools

  • Git & GitHub
  • VS Code

Project Structure

Chemical-Equipment-Visualizer/
│
├── backend/                  # Django backend
│   ├── backend/              # Project settings
│   ├── analytics/            # Core app (CSV, API, PDF)
│   ├── manage.py
│   ├── db.sqlite3
│   └── venv/                 # Virtual environment (not pushed)
│
├── web-frontend/             # React application
│   ├── src/
│   │   ├── components/
│   │   ├── services/
│   │   ├── App.js
│   │   └── App.css
│   └── package.json
│
├── desktop-app/              # PyQt5 desktop app
│   ├── app.py
│   └── charts.py
│
├── sample_equipment_data.csv # Sample CSV for testing
└── README.md

Backend Setup (Django)

cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Backend runs at:
http://127.0.0.1:8000/


Web Frontend Setup (React)

cd web-frontend
npm install
npm start

Web app runs at:
http://localhost:3000/

Desktop Application Setup (PyQt5)

cd desktop-app
pip install -r requirements.txt
python app.py

Application Workflow

  1. User logs in (Web or Desktop)
  2. User uploads CSV file
  3. Backend processes data using Pandas
  4. KPIs & charts are displayed
  5. Upload history is stored (last 5 uploads)
  6. User can generate a PDF report

Sample CSV Format

The sample CSV file contains the following columns:

  • Equipment Name
  • Equipment Type
  • Flowrate
  • Pressure
  • Temperature

Sample file: sample_equipment_data.csv


API Endpoints

Method Endpoint Description
POST /api/upload/ Upload CSV file
GET /api/history/ Fetch last 5 uploads
GET /api/report/pdf/ Generate PDF report

Screenshots

Web Application

Login Page
Web Login

Dashboard (KPIs + Charts)
Web Dashboard

Upload History
Web History

PDF Report Preview
Web PDF


Desktop Application

Login Window
Desktop Login

Dashboard View
Desktop Dashboard

Charts View
Desktop Charts

Demo Video Link:
Click here to watch demo video


Authentication

Basic token-based authentication is implemented to secure the application. Users must log in before accessing protected features such as:

  • CSV upload
  • Analytics dashboard
  • Upload history
  • PDF report generation

Testing

  • Backend APIs tested using Postman
  • CSV edge cases validated manually
  • UI tested for basic user workflows

Error Handling

  • Invalid CSV formats are handled gracefully
  • User-friendly error messages are displayed
  • Backend validation prevents corrupt or incomplete data processing

Notes

  • venv/ and node_modules/ are excluded from version control
  • .gitignore is used to keep the repository clean and lightweight

License

This project is created for educational purposes only.


Acknowledgement & Closing

This project represents a practical implementation of full-stack development concepts combined with real-world data analytics and visualization techniques. It reflects hands-on learning in backend API design, frontend integration, desktop application development, and data-driven reporting.

Developed as part of academic learning and skill enhancement in software engineering and data analytics.

- Prakash Kumar Jha
Indian Institute of Technology (IIT) Patna

About

Designed and developed a hybrid Web and Desktop system for chemical equipment data analytics, visualization, and reporting using Django, React, and PyQt5.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages