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.
- 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
- 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
- Python
- Django
- Django REST Framework
- Pandas (CSV processing & analytics)
- ReportLab (PDF generation)
- SQLite
- React.js
- JavaScript (ES6)
- Chart.js
- CSS
- PyQt5
- Matplotlib
- Git & GitHub
- VS Code
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
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserverBackend runs at:
http://127.0.0.1:8000/
cd web-frontend
npm install
npm startWeb app runs at:
http://localhost:3000/
cd desktop-app
pip install -r requirements.txt
python app.py- User logs in (Web or Desktop)
- User uploads CSV file
- Backend processes data using Pandas
- KPIs & charts are displayed
- Upload history is stored (last 5 uploads)
- User can generate a PDF report
The sample CSV file contains the following columns:
- Equipment Name
- Equipment Type
- Flowrate
- Pressure
- Temperature
Sample file: sample_equipment_data.csv
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/upload/ |
Upload CSV file |
| GET | /api/history/ |
Fetch last 5 uploads |
| GET | /api/report/pdf/ |
Generate PDF report |
Demo Video Link:
Click here to watch demo video
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
- Backend APIs tested using Postman
- CSV edge cases validated manually
- UI tested for basic user workflows
- Invalid CSV formats are handled gracefully
- User-friendly error messages are displayed
- Backend validation prevents corrupt or incomplete data processing
venv/andnode_modules/are excluded from version control.gitignoreis used to keep the repository clean and lightweight
This project is created for educational purposes only.
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






