This is a Hybrid Enterprise Resource Planning (ERP) System designed for Washing Unit (Pvt) Ltd. It seamlessly integrates a Java Desktop Application for internal operations (Inventory & Finance) with a PHP Web Portal for external stakeholders (Suppliers & Customers).
The system automates the entire supply chain workflow:
- Suppliers receive Purchase Orders (POs) and upload invoices via the Web Portal.
- Internal Staff manage stock, approve payments, and track usage via the Java Desktop App.
- Customers place service orders and track status via the Customer Web Dashboard.
- Language: Java (JDK 21)
- GUI Framework: Java Swing (Modern UI with FlatLaf/Custom Styling)
- Database Connectivity: JDBC (MySQL Connector)
- Key Libraries: *
JCalendar(Date Pickers)Google API Client(Drive Integration for Receipts)JasperReports(PDF Generation)
- Backend: PHP (Native PDO for Security)
- Frontend: HTML5, CSS3 (Glassmorphism UI), JavaScript (ES6+ Fetch API)
- Database: MySQL / MariaDB (Shared with Desktop App)
- Server: Apache (XAMPP)
- Inventory Management: Track raw materials (Dye, Chemicals) with "IN/OUT" transaction logs.
- Stock History: Visual tables showing usage history and operator costs.
- Payment Verification: Verify supplier invoices and mark them as "Success" or "Failed".
- Automated Sync: Updates order status (e.g., from "Pending" to "Completed") instantly across the database.
- Supplier Dashboard: * View new Purchase Orders (POs).
- Upload PDF Invoices.
- Track Payment Status (Pending vs. Settled).
- Customer Dashboard: * Place new service requests.
- Track order progress (Processing -> Completed).
- View payment dues.
- Security: * SQL Injection protection via Prepared Statements.
- Session-based Authentication.
- Install XAMPP and start Apache and MySQL.
- Open phpMyAdmin (
http://localhost/phpmyadmin). - Create a database named
production_db. - Import the SQL file located in:
database/production_db.sql(orproduction_db (11).sql)
-
Copy the
FINAL_PROJECTfolder to your XAMPPhtdocsdirectory:- Path:
C:\xampp\htdocs\AFinal\
- Path:
-
Configure the database connection:
- Edit
php/db_config.php:
$host = 'localhost'; $db = 'production_db'; $user = 'root'; $pass = ''; // Default XAMPP password
- Edit
-
Access the site:
http://localhost/addfolder/ -
Site Repo link Click Here
- Open the project in IntelliJ IDEA or NetBeans.
- Add Dependencies: Ensure the following JARs are in your library path:
mysql-connector-j-9.x.jarjcalendar-1.4.jargoogle-api-clientJARs (if using Drive features)
- Configure Credentials:
- Since
reciept.jsonandtokens/are ignored by Git for security, you must add your own Google OAuth Credentials file to the project root if you plan to use the Drive Upload feature.
- Since
- Run
main.Mainclass.
| Supplier Dashboard | Java Inventory Panel |
|---|---|
![]() |
![]() |
| Real-time stats and invoice uploads | Stock tracking and resource management |
- Secrets Management: API Keys and OAuth Tokens are excluded from version control via
.gitignore. - Data Integrity: Transaction blocks (
conn.setAutoCommit(false)) are used for critical updates (e.g., Accepting POs) to prevent data mismatches. - Validation: All user inputs (PHP & Java) are validated before processing to prevent SQL Injection and XSS.
- Add Email Notifications for Order Status changes.
- Implement Role-Based Access Control (RBAC) for Java Admin.
- Migrate local file storage to AWS S3.
- NimnaOfficial - Developer (Full Stack)
- imaam07 - Lead Developer (Full Stack)
This project is for educational purposes as part of the Software Engineering Final Project.

