Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

2024

DATABASE
PROJECT

DWATSON DATABASE
AROOBA, AHMAD RAZA, M. MUHID

SUBMITTED TO MAM WARDA |

0
Contents
 Introduction

• Objectives ……………………………………………………………………………………………..
• Tasks …………………………………………………………………………………………………...
• Software List ………………………………………………………………………………………….
• Software Description …………………………………………………………………………………
• Methodology …………………………………………………………………………………………..

 Design And software Implementation

• Design ……………………………………………………………………………………………….
• Code ………………………………………………………………………………………………….

 Conclusion

• Conclusion and Applications …………………………………………………………………………..


• Work Distribution ………………………………………………………………………………………

1
DWATSON DATABASE
Project: Building a Database of DWATSON

Introduction:
Objectives:
 Design a full stalk database:
❖ Design Forms of Collects
❖ Apply CRUD operations on the forms
❖ Connect your Forms to Database MongoDB
Tasks:
• Designing Database
Software:
 NetBeans
 MongoDB
 Maven
Software description:
• NetBeans

• MongoDB

Methodology:
Creating GUI Based User Interface using Java JFrame and then connecting it to MongoDB
backend.
Used Tools:

2
Design And software Implementation

3
Code:

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template
*/
import javax.swing.*;
import org.bson.*;
import com.mongodb.client.*;
public class Main extends JFrame {
private MongoDatabase database;
private MongoCollection<Document> employeeCollection;
private MongoCollection<Document> inventoryCollection;
private MongoCollection<Document> branchCollection;
private MongoCollection<Document> doctorCollection;
private MongoCollection<Document> supplierCollection;
private MongoCollection<Document> medicineCollection;
private MongoCollection<Document> paymentCollection;
private MongoCollection<Document> customerCollection;
private MongoCollection<Document> prescriptionCollection;
private MongoCollection<Document> transactionCollection;
public Main() {
initComponents();
connectToDatabase();
}

4
@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">


private void initComponents() {

jMenuItem1 = new javax.swing.JMenuItem();


jTabbedPane11 = new javax.swing.JTabbedPane();
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel27 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel30 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jLabel9 = new javax.swing.JLabel();
jTabbedPane12 = new javax.swing.JTabbedPane();
addEmployeeButton4 = new javax.swing.JButton();
viewEmployeeButton3 = new javax.swing.JButton();
updateEmployeeButton3 = new javax.swing.JButton();
deleteEmployeeButton3 = new javax.swing.JButton();
jTabbedPane25 = new javax.swing.JTabbedPane();
viewInventoryButton2 = new javax.swing.JButton();
updateinventoryButton2 = new javax.swing.JButton();
deleteInventoryButton2 = new javax.swing.JButton();
addInventoryButton2 = new javax.swing.JButton();
jTabbedPane26 = new javax.swing.JTabbedPane();
addBranchButton2 = new javax.swing.JButton();
viewBranchButton2 = new javax.swing.JButton();
updateBranchButton2 = new javax.swing.JButton();
deleteBranchButton2 = new javax.swing.JButton();
jTabbedPane27 = new javax.swing.JTabbedPane();
addCustomerButton2 = new javax.swing.JButton();
viewCustomerButton2 = new javax.swing.JButton();
updateCustomerButton2 = new javax.swing.JButton();
deleteCustomerButton2 = new javax.swing.JButton();
jTabbedPane28 = new javax.swing.JTabbedPane();
addPrescriptionButton2 = new javax.swing.JButton();
viewPrescriptionButton2 = new javax.swing.JButton();
updatePrescriptionButton2 = new javax.swing.JButton();
deletePrescriptionButton2 = new javax.swing.JButton();
jTabbedPane29 = new javax.swing.JTabbedPane();
addDoctorButton2 = new javax.swing.JButton();
viewDoctorButton2 = new javax.swing.JButton();

5
updateDoctorButton2 = new javax.swing.JButton();
deleteDoctorButton2 = new javax.swing.JButton();
jTabbedPane30 = new javax.swing.JTabbedPane();
addMedicineButton2 = new javax.swing.JButton();
viewMedicineButton2 = new javax.swing.JButton();
updateMedicineButton2 = new javax.swing.JButton();
deleteMedicineButton2 = new javax.swing.JButton();
jTabbedPane31 = new javax.swing.JTabbedPane();
addTransactionButton2 = new javax.swing.JButton();
viewTransactionButton2 = new javax.swing.JButton();
updateTransactionButton2 = new javax.swing.JButton();
deleteTransactionButton2 = new javax.swing.JButton();
jTabbedPane32 = new javax.swing.JTabbedPane();
addSupplierButton2 = new javax.swing.JButton();
viewSupplierButton2 = new javax.swing.JButton();
updateSupplierButton2 = new javax.swing.JButton();
deleteSupplierButton2 = new javax.swing.JButton();
jTabbedPane33 = new javax.swing.JTabbedPane();
addPaymentButton2 = new javax.swing.JButton();
viewPaymentButton2 = new javax.swing.JButton();
updatePaymentButton2 = new javax.swing.JButton();
deletePaymentButton2 = new javax.swing.JButton();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel29 = new javax.swing.JLabel();
jLabel28 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jLabel14 = new javax.swing.JLabel();
jMenuBar1 = new javax.swing.JMenuBar();

jMenuItem1.setText("jMenuItem1");

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setResizable(false);

jTabbedPane11.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane11.setForeground(new java.awt.Color(204, 204, 0));

jPanel1.setBackground(new java.awt.Color(219, 20, 20));


jPanel1.setLayout(null);

jLabel2.setBackground(new java.awt.Color(255, 255, 255));


jLabel2.setFont(new java.awt.Font("Comic Sans MS", 1, 48)); // NOI18N
jLabel2.setForeground(new java.awt.Color(255, 255, 255));

6
jLabel2.setText("D.Watson");
jPanel1.add(jLabel2);
jLabel2.setBounds(330, 10, 229, 67);

jLabel1.setBackground(new java.awt.Color(255, 255, 255));


jLabel1.setFont(new java.awt.Font("Georgia", 1, 14)); // NOI18N
jLabel1.setForeground(new java.awt.Color(255, 255, 255));
jLabel1.setText(" CHEMIST & SUPER STORE");
jPanel1.add(jLabel1);
jLabel1.setBounds(320, 80, 232, 17);

jLabel3.setBackground(new java.awt.Color(255, 255, 255));


jLabel3.setFont(new java.awt.Font("Georgia", 1, 14)); // NOI18N
jLabel3.setForeground(new java.awt.Color(255, 255, 255));
jLabel3.setText(" Developed By Ms.Warda (Talented Students)");
jPanel1.add(jLabel3);
jLabel3.setBounds(270, 520, 331, 17);

jLabel4.setBackground(new java.awt.Color(255, 255, 255));


jLabel4.setFont(new java.awt.Font("Georgia", 1, 14)); // NOI18N
jLabel4.setForeground(new java.awt.Color(255, 255, 255));
jLabel4.setText(" COPYRIGHTS PROTECTED @D.Watson");
jPanel1.add(jLabel4);
jLabel4.setBounds(270, 490, 314, 17);

jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Medical-pharmacy-logo-
design-template-on-transparent-background-PNG-removebg-preview.png"))); // NOI18N
jPanel1.add(jLabel7);
jLabel7.setBounds(0, -40, 230, 210);

jLabel27.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Untitled_design-
removebg-preview.png"))); // NOI18N
jPanel1.add(jLabel27);
jLabel27.setBounds(-170, 340, 490, 400);

jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Untitled design (1).png")));


// NOI18N
jLabel6.setText("jLabel6");
jPanel1.add(jLabel6);
jLabel6.setBounds(120, 110, 640, 360);

jLabel30.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Blue_Modern_Medical_Service_Instagram_Post-
removebg-preview1_1.png"))); // NOI18N
jPanel1.add(jLabel30);
jLabel30.setBounds(940, 110, 510, 300);

7
jLabel13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Blue and Yellow Gradient
Modern Desktop Wallpaper.png"))); // NOI18N
jLabel13.setText("jLabel13");
jLabel13.setMaximumSize(new java.awt.Dimension(500, 500));
jLabel13.setPreferredSize(new java.awt.Dimension(500, 500));
jPanel1.add(jLabel13);
jLabel13.setBounds(-600, -130, 2040, 820);

jTabbedPane11.addTab("HOME", jPanel1);

jPanel3.setBackground(new java.awt.Color(219, 20, 20));


jPanel3.setLayout(null);

jLabel9.setBackground(new java.awt.Color(255, 255, 255));


jLabel9.setFont(new java.awt.Font("Comic Sans MS", 1, 48)); // NOI18N
jLabel9.setForeground(new java.awt.Color(255, 255, 255));
jLabel9.setText("D.Watson");
jPanel3.add(jLabel9);
jLabel9.setBounds(380, 10, 229, 67);

jTabbedPane12.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane12.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane12.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addEmployeeButton4.setBackground(new java.awt.Color(20, 36, 60));


addEmployeeButton4.setForeground(new java.awt.Color(204, 204, 0));
addEmployeeButton4.setText("ADD EMPLOYEE");
addEmployeeButton4.setBorder(null);
addEmployeeButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addEmployeeButton4ActionPerformed(evt);
}
});
jTabbedPane12.addTab("ADD", addEmployeeButton4);

viewEmployeeButton3.setBackground(new java.awt.Color(20, 36, 60));


viewEmployeeButton3.setForeground(new java.awt.Color(204, 204, 0));
viewEmployeeButton3.setText("VIEW EMPLOYEE");
viewEmployeeButton3.setBorder(null);
viewEmployeeButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewEmployeeButton3ActionPerformed(evt);
}
});
jTabbedPane12.addTab("VIEW", viewEmployeeButton3);

updateEmployeeButton3.setBackground(new java.awt.Color(20, 36, 60));

8
updateEmployeeButton3.setForeground(new java.awt.Color(204, 204, 0));
updateEmployeeButton3.setText("UPDATE EMPLOYEE");
updateEmployeeButton3.setBorder(null);
updateEmployeeButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateEmployeeButton3ActionPerformed(evt);
}
});
jTabbedPane12.addTab("UPDATE", updateEmployeeButton3);

deleteEmployeeButton3.setBackground(new java.awt.Color(20, 36, 60));


deleteEmployeeButton3.setForeground(new java.awt.Color(204, 204, 0));
deleteEmployeeButton3.setText("DELETE EMPLOYEE");
deleteEmployeeButton3.setBorder(null);
deleteEmployeeButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteEmployeeButton3ActionPerformed(evt);
}
});
jTabbedPane12.addTab("DELETE", deleteEmployeeButton3);

jPanel3.add(jTabbedPane12);
jTabbedPane12.setBounds(20, 130, 270, 60);

jTabbedPane25.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane25.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane25.setFocusable(false);
jTabbedPane25.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

viewInventoryButton2.setBackground(new java.awt.Color(20, 36, 60));


viewInventoryButton2.setForeground(new java.awt.Color(204, 204, 0));
viewInventoryButton2.setText("VIEW INVENTORY");
viewInventoryButton2.setBorder(null);
viewInventoryButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewInventoryButton2ActionPerformed(evt);
}
});
jTabbedPane25.addTab("VIEW", viewInventoryButton2);

updateinventoryButton2.setBackground(new java.awt.Color(20, 36, 60));


updateinventoryButton2.setForeground(new java.awt.Color(204, 204, 0));
updateinventoryButton2.setText("UPDATE INVENTORY");
updateinventoryButton2.setBorder(null);
updateinventoryButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateinventoryButton2ActionPerformed(evt);

9
}
});
jTabbedPane25.addTab("UPDATE", updateinventoryButton2);

deleteInventoryButton2.setBackground(new java.awt.Color(20, 36, 60));


deleteInventoryButton2.setForeground(new java.awt.Color(204, 204, 0));
deleteInventoryButton2.setText("DELETE INVENTORY");
deleteInventoryButton2.setBorder(null);
deleteInventoryButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteInventoryButton2ActionPerformed(evt);
}
});
jTabbedPane25.addTab("DELETE", deleteInventoryButton2);

addInventoryButton2.setBackground(new java.awt.Color(20, 36, 60));


addInventoryButton2.setForeground(new java.awt.Color(204, 204, 0));
addInventoryButton2.setText("ADD INVENTORY");
addInventoryButton2.setBorder(null);
addInventoryButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addInventoryButton2ActionPerformed(evt);
}
});
jTabbedPane25.addTab("ADD", addInventoryButton2);

jPanel3.add(jTabbedPane25);
jTabbedPane25.setBounds(360, 260, 270, 60);

jTabbedPane26.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane26.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane26.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addBranchButton2.setBackground(new java.awt.Color(20, 36, 60));


addBranchButton2.setForeground(new java.awt.Color(204, 204, 0));
addBranchButton2.setText("ADD BRANCH");
addBranchButton2.setBorder(null);
addBranchButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addBranchButton2ActionPerformed(evt);
}
});
jTabbedPane26.addTab("ADD", addBranchButton2);

viewBranchButton2.setBackground(new java.awt.Color(20, 36, 60));


viewBranchButton2.setForeground(new java.awt.Color(204, 204, 0));
viewBranchButton2.setText("VIEW BRANCH");

10
viewBranchButton2.setBorder(null);
viewBranchButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewBranchButton2ActionPerformed(evt);
}
});
jTabbedPane26.addTab("VIEW", viewBranchButton2);

updateBranchButton2.setBackground(new java.awt.Color(20, 36, 60));


updateBranchButton2.setForeground(new java.awt.Color(204, 204, 0));
updateBranchButton2.setText("UPDATE BRANCH");
updateBranchButton2.setBorder(null);
updateBranchButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateBranchButton2ActionPerformed(evt);
}
});
jTabbedPane26.addTab("UPDATE", updateBranchButton2);

deleteBranchButton2.setBackground(new java.awt.Color(20, 36, 60));


deleteBranchButton2.setForeground(new java.awt.Color(204, 204, 0));
deleteBranchButton2.setText("DELETE BRANCH");
deleteBranchButton2.setBorder(null);
deleteBranchButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteBranchButton2ActionPerformed(evt);
}
});
jTabbedPane26.addTab("DELETE", deleteBranchButton2);

jPanel3.add(jTabbedPane26);
jTabbedPane26.setBounds(360, 130, 270, 60);

jTabbedPane27.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane27.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane27.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addCustomerButton2.setBackground(new java.awt.Color(20, 36, 60));


addCustomerButton2.setForeground(new java.awt.Color(204, 204, 0));
addCustomerButton2.setText("ADD CUSTOMER");
addCustomerButton2.setBorder(null);
addCustomerButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addCustomerButton2ActionPerformed(evt);
}
});
jTabbedPane27.addTab("ADD", addCustomerButton2);

11
viewCustomerButton2.setBackground(new java.awt.Color(20, 36, 60));
viewCustomerButton2.setForeground(new java.awt.Color(204, 204, 0));
viewCustomerButton2.setText("VIEW CUSTOMER");
viewCustomerButton2.setBorder(null);
viewCustomerButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewCustomerButton2ActionPerformed(evt);
}
});
jTabbedPane27.addTab("VIEW", viewCustomerButton2);

updateCustomerButton2.setBackground(new java.awt.Color(20, 36, 60));


updateCustomerButton2.setForeground(new java.awt.Color(204, 204, 0));
updateCustomerButton2.setText("UPDATE CUSTOMER");
updateCustomerButton2.setBorder(null);
updateCustomerButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateCustomerButton2ActionPerformed(evt);
}
});
jTabbedPane27.addTab("UPDATE", updateCustomerButton2);

deleteCustomerButton2.setBackground(new java.awt.Color(20, 36, 60));


deleteCustomerButton2.setForeground(new java.awt.Color(204, 204, 0));
deleteCustomerButton2.setText("DELETE CUSTOMER");
deleteCustomerButton2.setBorder(null);
deleteCustomerButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteCustomerButton2ActionPerformed(evt);
}
});
jTabbedPane27.addTab("DELETE", deleteCustomerButton2);

jPanel3.add(jTabbedPane27);
jTabbedPane27.setBounds(360, 330, 280, 62);

jTabbedPane28.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane28.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane28.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addPrescriptionButton2.setBackground(new java.awt.Color(20, 36, 60));


addPrescriptionButton2.setForeground(new java.awt.Color(204, 204, 0));
addPrescriptionButton2.setText("ADD PRESCRIPTION");
addPrescriptionButton2.setBorder(null);
addPrescriptionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {

12
addPrescriptionButton2ActionPerformed(evt);
}
});
jTabbedPane28.addTab("ADD", addPrescriptionButton2);

viewPrescriptionButton2.setBackground(new java.awt.Color(20, 36, 60));


viewPrescriptionButton2.setForeground(new java.awt.Color(204, 204, 0));
viewPrescriptionButton2.setText("VIEW PRESCRIPTION");
viewPrescriptionButton2.setBorder(null);
viewPrescriptionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewPrescriptionButton2ActionPerformed(evt);
}
});
jTabbedPane28.addTab("VIEW", viewPrescriptionButton2);

updatePrescriptionButton2.setBackground(new java.awt.Color(20, 36, 60));


updatePrescriptionButton2.setForeground(new java.awt.Color(204, 204, 0));
updatePrescriptionButton2.setText("UPDATE PRESCRIPTION");
updatePrescriptionButton2.setBorder(null);
updatePrescriptionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updatePrescriptionButton2ActionPerformed(evt);
}
});
jTabbedPane28.addTab("UPDATE", updatePrescriptionButton2);

deletePrescriptionButton2.setBackground(new java.awt.Color(20, 36, 60));


deletePrescriptionButton2.setForeground(new java.awt.Color(204, 204, 0));
deletePrescriptionButton2.setText("DELETE PRESCRIPTION");
deletePrescriptionButton2.setBorder(null);
deletePrescriptionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deletePrescriptionButton2ActionPerformed(evt);
}
});
jTabbedPane28.addTab("DELETE", deletePrescriptionButton2);

jPanel3.add(jTabbedPane28);
jTabbedPane28.setBounds(20, 190, 270, 60);

jTabbedPane29.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane29.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane29.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addDoctorButton2.setBackground(new java.awt.Color(20, 36, 60));


addDoctorButton2.setForeground(new java.awt.Color(204, 204, 0));

13
addDoctorButton2.setText("ADD DOCTOR");
addDoctorButton2.setBorder(null);
addDoctorButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addDoctorButton2ActionPerformed(evt);
}
});
jTabbedPane29.addTab("ADD", addDoctorButton2);

viewDoctorButton2.setBackground(new java.awt.Color(20, 36, 60));


viewDoctorButton2.setForeground(new java.awt.Color(204, 204, 0));
viewDoctorButton2.setText("VIEW DOCTOR");
viewDoctorButton2.setBorder(null);
viewDoctorButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewDoctorButton2ActionPerformed(evt);
}
});
jTabbedPane29.addTab("VIEW", viewDoctorButton2);

updateDoctorButton2.setBackground(new java.awt.Color(20, 36, 60));


updateDoctorButton2.setForeground(new java.awt.Color(204, 204, 0));
updateDoctorButton2.setText("UPDATE DOCTOR");
updateDoctorButton2.setBorder(null);
updateDoctorButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateDoctorButton2ActionPerformed(evt);
}
});
jTabbedPane29.addTab("UPDATE", updateDoctorButton2);

deleteDoctorButton2.setBackground(new java.awt.Color(20, 36, 60));


deleteDoctorButton2.setForeground(new java.awt.Color(204, 204, 0));
deleteDoctorButton2.setText("DELETE DOCTOR");
deleteDoctorButton2.setBorder(null);
deleteDoctorButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteDoctorButton2ActionPerformed(evt);
}
});
jTabbedPane29.addTab("DELETE", deleteDoctorButton2);

jPanel3.add(jTabbedPane29);
jTabbedPane29.setBounds(360, 190, 270, 60);

jTabbedPane30.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane30.setForeground(new java.awt.Color(0, 204, 255));

14
jTabbedPane30.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addMedicineButton2.setBackground(new java.awt.Color(20, 36, 60));


addMedicineButton2.setForeground(new java.awt.Color(204, 204, 0));
addMedicineButton2.setText("ADD MEDICINE");
addMedicineButton2.setBorder(null);
addMedicineButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addMedicineButton2ActionPerformed(evt);
}
});
jTabbedPane30.addTab("ADD", addMedicineButton2);

viewMedicineButton2.setBackground(new java.awt.Color(20, 36, 60));


viewMedicineButton2.setForeground(new java.awt.Color(204, 204, 0));
viewMedicineButton2.setText("VIEW MEDICINE");
viewMedicineButton2.setBorder(null);
viewMedicineButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewMedicineButton2ActionPerformed(evt);
}
});
jTabbedPane30.addTab("VIEW", viewMedicineButton2);

updateMedicineButton2.setBackground(new java.awt.Color(20, 36, 60));


updateMedicineButton2.setForeground(new java.awt.Color(204, 204, 0));
updateMedicineButton2.setText("UPDATE MEDICINE");
updateMedicineButton2.setBorder(null);
updateMedicineButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateMedicineButton2ActionPerformed(evt);
}
});
jTabbedPane30.addTab("UPDATE", updateMedicineButton2);

deleteMedicineButton2.setBackground(new java.awt.Color(20, 36, 60));


deleteMedicineButton2.setForeground(new java.awt.Color(204, 204, 0));
deleteMedicineButton2.setText("DELETE MEDICINE");
deleteMedicineButton2.setBorder(null);
deleteMedicineButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteMedicineButton2ActionPerformed(evt);
}
});
jTabbedPane30.addTab("DELETE", deleteMedicineButton2);

jPanel3.add(jTabbedPane30);

15
jTabbedPane30.setBounds(20, 260, 270, 60);

jTabbedPane31.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane31.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane31.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addTransactionButton2.setBackground(new java.awt.Color(20, 36, 60));


addTransactionButton2.setForeground(new java.awt.Color(204, 204, 0));
addTransactionButton2.setText("ADD TRANSACTION");
addTransactionButton2.setBorder(null);
addTransactionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addTransactionButton2ActionPerformed(evt);
}
});
jTabbedPane31.addTab("ADD", addTransactionButton2);

viewTransactionButton2.setBackground(new java.awt.Color(20, 36, 60));


viewTransactionButton2.setForeground(new java.awt.Color(204, 204, 0));
viewTransactionButton2.setText("VIEW TRANSACTION");
viewTransactionButton2.setBorder(null);
viewTransactionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewTransactionButton2ActionPerformed(evt);
}
});
jTabbedPane31.addTab("VIEW", viewTransactionButton2);

updateTransactionButton2.setBackground(new java.awt.Color(20, 36, 60));


updateTransactionButton2.setForeground(new java.awt.Color(204, 204, 0));
updateTransactionButton2.setText("UPDATE TRANSACTION");
updateTransactionButton2.setBorder(null);
updateTransactionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateTransactionButton2ActionPerformed(evt);
}
});
jTabbedPane31.addTab("UPDATE", updateTransactionButton2);

deleteTransactionButton2.setBackground(new java.awt.Color(20, 36, 60));


deleteTransactionButton2.setForeground(new java.awt.Color(204, 204, 0));
deleteTransactionButton2.setText("DELETE TRANSACTION");
deleteTransactionButton2.setBorder(null);
deleteTransactionButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteTransactionButton2ActionPerformed(evt);
}

16
});
jTabbedPane31.addTab("DELETE", deleteTransactionButton2);

jPanel3.add(jTabbedPane31);
jTabbedPane31.setBounds(680, 260, 270, 60);

jTabbedPane32.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane32.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane32.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addSupplierButton2.setBackground(new java.awt.Color(20, 36, 60));


addSupplierButton2.setForeground(new java.awt.Color(204, 204, 0));
addSupplierButton2.setText("ADD SUPPLIER");
addSupplierButton2.setBorder(null);
addSupplierButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addSupplierButton2ActionPerformed(evt);
}
});
jTabbedPane32.addTab("ADD", addSupplierButton2);

viewSupplierButton2.setBackground(new java.awt.Color(20, 36, 60));


viewSupplierButton2.setForeground(new java.awt.Color(204, 204, 0));
viewSupplierButton2.setText("VIEW SUPPLIER");
viewSupplierButton2.setBorder(null);
viewSupplierButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewSupplierButton2ActionPerformed(evt);
}
});
jTabbedPane32.addTab("VIEW", viewSupplierButton2);

updateSupplierButton2.setBackground(new java.awt.Color(20, 36, 60));


updateSupplierButton2.setForeground(new java.awt.Color(204, 204, 0));
updateSupplierButton2.setText("UPDATE SUPPLIER");
updateSupplierButton2.setBorder(null);
updateSupplierButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateSupplierButton2ActionPerformed(evt);
}
});
jTabbedPane32.addTab("UPDATE", updateSupplierButton2);

deleteSupplierButton2.setBackground(new java.awt.Color(20, 36, 60));


deleteSupplierButton2.setForeground(new java.awt.Color(204, 204, 0));
deleteSupplierButton2.setText("DELETE SUPPLIER");
deleteSupplierButton2.setBorder(null);

17
deleteSupplierButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteSupplierButton2ActionPerformed(evt);
}
});
jTabbedPane32.addTab("DELETE", deleteSupplierButton2);

jPanel3.add(jTabbedPane32);
jTabbedPane32.setBounds(20, 330, 270, 60);

jTabbedPane33.setBackground(new java.awt.Color(20, 36, 60));


jTabbedPane33.setForeground(new java.awt.Color(0, 204, 255));
jTabbedPane33.setFont(new java.awt.Font("Georgia", 1, 12)); // NOI18N

addPaymentButton2.setBackground(new java.awt.Color(20, 36, 60));


addPaymentButton2.setForeground(new java.awt.Color(204, 204, 0));
addPaymentButton2.setText("ADD PAYMENT");
addPaymentButton2.setBorder(null);
addPaymentButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addPaymentButton2ActionPerformed(evt);
}
});
jTabbedPane33.addTab("ADD", addPaymentButton2);

viewPaymentButton2.setBackground(new java.awt.Color(20, 36, 60));


viewPaymentButton2.setForeground(new java.awt.Color(204, 204, 0));
viewPaymentButton2.setText("VIEW PAYMENT");
viewPaymentButton2.setBorder(null);
viewPaymentButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewPaymentButton2ActionPerformed(evt);
}
});
jTabbedPane33.addTab("VIEW", viewPaymentButton2);

updatePaymentButton2.setBackground(new java.awt.Color(20, 36, 60));


updatePaymentButton2.setForeground(new java.awt.Color(204, 204, 0));
updatePaymentButton2.setText("UPDATE PAYMENT");
updatePaymentButton2.setBorder(null);
updatePaymentButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updatePaymentButton2ActionPerformed(evt);
}
});
jTabbedPane33.addTab("UPDATE", updatePaymentButton2);

18
deletePaymentButton2.setBackground(new java.awt.Color(20, 36, 60));
deletePaymentButton2.setForeground(new java.awt.Color(204, 204, 0));
deletePaymentButton2.setText("DELETE PAYMENT");
deletePaymentButton2.setBorder(null);
deletePaymentButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deletePaymentButton2ActionPerformed(evt);
}
});
jTabbedPane33.addTab("DELETE", deletePaymentButton2);

jPanel3.add(jTabbedPane33);
jTabbedPane33.setBounds(680, 330, 270, 60);

jLabel10.setBackground(new java.awt.Color(255, 255, 255));


jLabel10.setFont(new java.awt.Font("Georgia", 1, 14)); // NOI18N
jLabel10.setForeground(new java.awt.Color(255, 255, 255));
jLabel10.setText(" CHEMIST & SUPER STORE");
jPanel3.add(jLabel10);
jLabel10.setBounds(370, 80, 232, 17);

jLabel11.setBackground(new java.awt.Color(255, 255, 255));


jLabel11.setFont(new java.awt.Font("Georgia", 1, 14)); // NOI18N
jLabel11.setForeground(new java.awt.Color(255, 255, 255));
jLabel11.setText(" Developed By Ms.Warda (Talented Students)");
jPanel3.add(jLabel11);
jLabel11.setBounds(340, 520, 331, 17);

jLabel12.setBackground(new java.awt.Color(255, 255, 255));


jLabel12.setFont(new java.awt.Font("Georgia", 1, 14)); // NOI18N
jLabel12.setForeground(new java.awt.Color(255, 255, 255));
jLabel12.setText(" COPYRIGHTS PROTECTED @D.Watson");
jPanel3.add(jLabel12);
jLabel12.setBounds(340, 490, 314, 17);

jLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Medical-pharmacy-logo-
design-template-on-transparent-background-PNG-removebg-preview.png"))); // NOI18N
jPanel3.add(jLabel8);
jLabel8.setBounds(10, 10, 140, 110);

jLabel29.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Untitled_design-
removebg-preview.png"))); // NOI18N
jPanel3.add(jLabel29);
jLabel29.setBounds(910, 380, 490, 400);

jLabel28.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Blue_Modern_Medical_Service_Instagram_Post-

19
removebg-preview1_1.png"))); // NOI18N
jPanel3.add(jLabel28);
jLabel28.setBounds(950, 200, 470, 260);

jTextArea1.setBackground(new java.awt.Color(20, 36, 60));


jTextArea1.setColumns(20);
jTextArea1.setForeground(new java.awt.Color(204, 204, 0));
jTextArea1.setRows(5);
jTextArea1.setBorder(null);
jScrollPane1.setViewportView(jTextArea1);

jPanel3.add(jScrollPane1);
jScrollPane1.setBounds(20, 400, 930, 80);

jLabel14.setForeground(new java.awt.Color(204, 204, 0));


jLabel14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Blue and Yellow Gradient
Modern Desktop Wallpaper.png"))); // NOI18N
jLabel14.setText("jLabel13");
jLabel14.setMaximumSize(new java.awt.Dimension(500, 500));
jLabel14.setPreferredSize(new java.awt.Dimension(500, 500));
jPanel3.add(jLabel14);
jLabel14.setBounds(-570, -30, 1860, 790);

jTabbedPane11.addTab("DATA", jPanel3);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());


getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jTabbedPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 1216,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jTabbedPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 583,
javax.swing.GroupLayout.PREFERRED_SIZE))
);

pack();
}// </editor-fold>

20
private void deletePaymentButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deletePayment(); // TODO add your handling code here:
}
private void updatePaymentButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updatePayment(); // TODO add your handling code here:
}
private void viewPaymentButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayPaymentData(); // TODO add your handling code here:
}
private void addPaymentButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addPayment(); // TODO add your handling code here:
}

DEFINING FUNCTIONS

private void deleteSupplierButton2ActionPerformed(java.awt.event.ActionEvent evt) {


deleteSupplier(); // TODO add your handling code here:
}
private void updateSupplierButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateSupplier(); // TODO add your handling code here:
}
private void viewSupplierButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displaySupplierData(); // TODO add your handling code here:
}
private void addSupplierButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addSupplier(); // TODO add your handling code here:
}
private void deleteTransactionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deleteTransaction(); // TODO add your handling code here:
}
private void updateTransactionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateTransaction(); // TODO add your handling code here:
}
private void viewTransactionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayTransactionData() ; // TODO add your handling code here:
}
private void addTransactionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addTransaction(); // TODO add your handling code here:
}
private void deleteMedicineButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deleteMedicine(); // TODO add your handling code here:
}
private void updateMedicineButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateMedicine(); // TODO add your handling code here:
}
private void viewMedicineButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayMedicineData(); // TODO add your handling code here:
}

21
private void addMedicineButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addMedicine(); // TODO add your handling code here:
}
private void deleteDoctorButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deleteDoctor(); // TODO add your handling code here:
}
private void updateDoctorButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateDoctor(); // TODO add your handling code here:
}
private void viewDoctorButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayDoctorData(); // TODO add your handling code here:
}
private void addDoctorButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addDoctor(); // TODO add your handling code here:
}
private void deletePrescriptionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deletePrescription(); // TODO add your handling code here:
}
private void updatePrescriptionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updatePrescription(); // TODO add your handling code here:
}
private void viewPrescriptionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayPrescriptionData(); // TODO add your handling code here:
}
private void addPrescriptionButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addPrescription(); // TODO add your handling code here:
}
private void deleteCustomerButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deleteCustomer(); // TODO add your handling code here:
}
private void updateCustomerButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateCustomer(); // TODO add your handling code here:
}
private void viewCustomerButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayCustomerData(); // TODO add your handling code here:
}
private void addCustomerButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addCustomer(); // TODO add your handling code here:
}
private void deleteBranchButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deleteBranch(); // TODO add your handling code here:
}
private void updateBranchButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateBranch(); // TODO add your handling code here:
}
private void viewBranchButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayBranchData(); // TODO add your handling code here:
}
private void addBranchButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addBranch(); // TODO add your handling code here:
}

22
private void addInventoryButton2ActionPerformed(java.awt.event.ActionEvent evt) {
addInventory(); // TODO add your handling code here:
}
private void deleteInventoryButton2ActionPerformed(java.awt.event.ActionEvent evt) {
deleteInventory(); // TODO add your handling code here:
}
private void updateinventoryButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateInventory(); // TODO add your handling code here:
}
private void viewInventoryButton2ActionPerformed(java.awt.event.ActionEvent evt) {
displayInventoryData(); // TODO add your handling code here:
}
private void deleteEmployeeButton3ActionPerformed(java.awt.event.ActionEvent evt) {
deleteEmployee(); // TODO add your handling code here:
}
private void updateEmployeeButton3ActionPerformed(java.awt.event.ActionEvent evt) {
updateEmployee(); // TODO add your handling code here:
}
private void viewEmployeeButton3ActionPerformed(java.awt.event.ActionEvent evt) {
displayEmployeeData(); // TODO add your handling code here:
}
private void addEmployeeButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
addEmployee();
}
private void connectToDatabase() {
com.mongodb.client.MongoClient mongoClient =
com.mongodb.client.MongoClients.create("mongodb://localhost:27017");
database = mongoClient.getDatabase("dwatson");
employeeCollection = database.getCollection("employees");
inventoryCollection = database.getCollection("inventory");
branchCollection = database.getCollection("branches");
doctorCollection = database.getCollection("doctors");
supplierCollection = database.getCollection("supplier");
paymentCollection = database.getCollection("payment");
medicineCollection = database.getCollection("medicine");
transactionCollection = database.getCollection("transaction");
prescriptionCollection = database.getCollection("prescription");
customerCollection = database.getCollection("customer");
}
private void displayEmployeeData() {
jTextArea1.setText("Employee Data:\n");
jTextArea1.append(String.format("%-20s %-20s %-20s %-10s %-20s %-10s\n", "Name", "Position",
"Contact", "ID", "Schedule", "Salary"));
MongoCursor<Document> cursor = employeeCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String name = document.getString("name");
String position = document.getString("position");
String contact = document.getString("contact");
String id = document.getString("id");

23
String schedule = document.getString("schedule");
String salary = document.getString("salary");
jTextArea1.append(String.format("%-20s %-20s %-20s %-10s %-20s %-10s\n", name, position, contact, id,
schedule, salary));
}
cursor.close();
}
private void displayInventoryData() {
jTextArea1.setText("Inventory Data:\n");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-20s\n", "Medicine ID", "Quantity on Hand",
"Reorder Level", "Supplier ID", "Expiry Date"));
MongoCursor<Document> cursor = inventoryCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String medicineID = document.getString("medicineID");
String quantityOnHand = document.getString("quantityOnHand");
String reorderLevel = document.getString("reorderLevel");
String supplierID = document.getString("supplierID");
String expiryDate = document.getString("expiryDate");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-20s\n", medicineID, quantityOnHand,
reorderLevel, supplierID, expiryDate));
}
cursor.close();
}
private void displayBranchData() {
jTextArea1.setText("Branch Data:\n");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-20s\n", "Branch ID", "Address", "Contact",
"Manager Name", "Operating Hours"));
MongoCursor<Document> cursor = branchCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String branchID = document.getString("branchID");
String address = document.getString("address");
String contact = document.getString("contact");
String managerName = document.getString("managerName");
String operatingHours = document.getString("operatingHours");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-20s\n", branchID, address, contact,
managerName, operatingHours));
}
cursor.close();
}
private void displayDoctorData() {
jTextArea1.setText("Doctor Data:\n");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-20s\n", "Doctor Name", "Specialty",
"Contact", "License Number", "Clinic Address"));
MongoCursor<Document> cursor = doctorCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String doctorName = document.getString("doctorName");
String specialty = document.getString("specialty");
String contact = document.getString("contact");

24
String licenseNumber = document.getString("licenseNumber");
String clinicAddress = document.getString("clinicAddress");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-20s\n", doctorName, specialty, contact,
licenseNumber, clinicAddress));
}
cursor.close();
}
private void addEmployee() {
String name = JOptionPane.showInputDialog(this, "Enter employee name:");
String position = JOptionPane.showInputDialog(this, "Enter employee position:");
String contact = JOptionPane.showInputDialog(this, "Enter employee contact:");
String id = JOptionPane.showInputDialog(this, "Enter employee ID:");
String schedule = JOptionPane.showInputDialog(this, "Enter employee schedule:");
String salary = JOptionPane.showInputDialog(this, "Enter employee salary:");
Document employeeDocument = new Document("name", name)
.append("position", position)
.append("contact", contact)
.append("id", id)
.append("schedule", schedule)
.append("salary", salary);
employeeCollection.insertOne(employeeDocument);
JOptionPane.showMessageDialog(this, "Employee added successfully.");
displayEmployeeData();
}
private void updateEmployee() {
String idToUpdate = JOptionPane.showInputDialog(this, "Enter the ID of the employee to update:");
Document query = new Document("id", idToUpdate);
Document existingEmployee = employeeCollection.find(query).first();
if (existingEmployee != null) {
String name = JOptionPane.showInputDialog(this, "Enter updated name:");
String position = JOptionPane.showInputDialog(this, "Enter updated position:");
String contact = JOptionPane.showInputDialog(this, "Enter updated contact:");
String schedule = JOptionPane.showInputDialog(this, "Enter updated schedule:");
String salary = JOptionPane.showInputDialog(this, "Enter updated salary:");
Document updatedEmployee = new Document("name", name)
.append("position", position)
.append("contact", contact)
.append("schedule", schedule)
.append("salary", salary);
employeeCollection.updateOne(query, new Document("$set", updatedEmployee));
JOptionPane.showMessageDialog(this, "Employee updated successfully.");
displayEmployeeData();
} else {
JOptionPane.showMessageDialog(this, "Employee not found.");
}
}
private void deleteEmployee() {
String idToDelete = JOptionPane.showInputDialog(this, "Enter the ID of the employee to delete:");
Document query = new Document("id", idToDelete);
employeeCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Employee deleted successfully.");

25
displayEmployeeData();
}
private void addInventory() {
String medicineID = JOptionPane.showInputDialog(this, "Enter medicine ID:");
String quantityOnHand = JOptionPane.showInputDialog(this, "Enter quantity on hand:");
String reorderLevel = JOptionPane.showInputDialog(this, "Enter reorder level:");
String supplierID = JOptionPane.showInputDialog(this, "Enter supplier ID:");
String expiryDate = JOptionPane.showInputDialog(this, "Enter expiry date:");
Document inventoryDocument = new Document("medicineID", medicineID)
.append("quantityOnHand", quantityOnHand)
.append("reorderLevel", reorderLevel)
.append("supplierID", supplierID)
.append("expiryDate", expiryDate);
inventoryCollection.insertOne(inventoryDocument);
JOptionPane.showMessageDialog(this, "Inventory added successfully.");
displayInventoryData();
}
private void updateInventory() {
String medicineIDToUpdate = JOptionPane.showInputDialog(this, "Enter the ID of the medicine to
update:");
Document query = new Document("medicineID", medicineIDToUpdate);
Document existingInventory = inventoryCollection.find(query).first();
if (existingInventory != null) {
String quantityOnHand = JOptionPane.showInputDialog(this, "Enter updated quantity on hand:");
String reorderLevel = JOptionPane.showInputDialog(this, "Enter updated reorder level:");
String supplierID = JOptionPane.showInputDialog(this, "Enter updated supplier ID:");
String expiryDate = JOptionPane.showInputDialog(this, "Enter updated expiry date:");
Document updatedInventory = new Document("quantityOnHand", quantityOnHand)
.append("reorderLevel", reorderLevel)
.append("supplierID", supplierID)
.append("expiryDate", expiryDate);
inventoryCollection.updateOne(query, new Document("$set", updatedInventory));
JOptionPane.showMessageDialog(this, "Inventory updated successfully.");
displayInventoryData();
} else {
JOptionPane.showMessageDialog(this, "Inventory not found.");
}
}
private void deleteInventory() {
String medicineIDToDelete = JOptionPane.showInputDialog(this, "Enter the ID of the medicine to delete:");
Document query = new Document("medicineID", medicineIDToDelete);
inventoryCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Inventory deleted successfully.");
displayInventoryData();
}
private void addBranch() {
String branchID = JOptionPane.showInputDialog(this, "Enter branch ID:");
String address = JOptionPane.showInputDialog(this, "Enter branch address:");
String contact = JOptionPane.showInputDialog(this, "Enter branch contact:");
String managerName = JOptionPane.showInputDialog(this, "Enter branch manager name:");
String operatingHours = JOptionPane.showInputDialog(this, "Enter branch operating hours:");

26
Document branchDocument = new Document("branchID", branchID)
.append("address", address)
.append("contact", contact)
.append("managerName", managerName)
.append("operatingHours", operatingHours);
branchCollection.insertOne(branchDocument);
JOptionPane.showMessageDialog(this, "Branch added successfully.");
displayBranchData();
}
private void updateBranch() {
String branchIDToUpdate = JOptionPane.showInputDialog(this, "Enter the ID of the branch to update:");
Document query = new Document("branchID", branchIDToUpdate);
Document existingBranch = branchCollection.find(query).first();
if (existingBranch != null) {
String address = JOptionPane.showInputDialog(this, "Enter updated address:");
String contact = JOptionPane.showInputDialog(this, "Enter updated contact:");
String managerName = JOptionPane.showInputDialog(this, "Enter updated manager name:");
String operatingHours = JOptionPane.showInputDialog(this, "Enter updated operating hours:");
Document updatedBranch = new Document("address", address)
.append("contact", contact)
.append("managerName", managerName)
.append("operatingHours", operatingHours);
branchCollection.updateOne(query, new Document("$set", updatedBranch));
JOptionPane.showMessageDialog(this, "Branch updated successfully.");
displayBranchData();
} else {
JOptionPane.showMessageDialog(this, "Branch not found.");
}
}
private void deleteBranch() {
String branchIDToDelete = JOptionPane.showInputDialog(this, "Enter the ID of the branch to delete:");
Document query = new Document("branchID", branchIDToDelete);
branchCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Branch deleted successfully.");
displayBranchData();
}
private void addDoctor() {
String doctorName = JOptionPane.showInputDialog(this, "Enter doctor name:");
String specialty = JOptionPane.showInputDialog(this, "Enter doctor specialty:");
String contact = JOptionPane.showInputDialog(this, "Enter doctor contact:");
String licenseNumber = JOptionPane.showInputDialog(this, "Enter doctor license number:");
String clinicAddress = JOptionPane.showInputDialog(this, "Enter doctor clinic address:");
Document doctorDocument = new Document("doctorName", doctorName)
.append("specialty", specialty)
.append("contact", contact)
.append("licenseNumber", licenseNumber)
.append("clinicAddress", clinicAddress);
doctorCollection.insertOne(doctorDocument);
JOptionPane.showMessageDialog(this, "Doctor added successfully.");
displayDoctorData();
}

27
private void updateDoctor() {
String doctorNameToUpdate = JOptionPane.showInputDialog(this, "Enter the name of the doctor to
update:");
Document query = new Document("doctorName", doctorNameToUpdate);
Document existingDoctor = doctorCollection.find(query).first();
if (existingDoctor != null) {
String specialty = JOptionPane.showInputDialog(this, "Enter updated specialty:");
String contact = JOptionPane.showInputDialog(this, "Enter updated contact:");
String licenseNumber = JOptionPane.showInputDialog(this, "Enter updated license number:");
String clinicAddress = JOptionPane.showInputDialog(this, "Enter updated clinic address:");
Document updatedDoctor = new Document("specialty", specialty)
.append("contact", contact)
.append("licenseNumber", licenseNumber)
.append("clinicAddress", clinicAddress);
doctorCollection.updateOne(query, new Document("$set", updatedDoctor));
JOptionPane.showMessageDialog(this, "Doctor updated successfully.");
displayDoctorData();
} else {
JOptionPane.showMessageDialog(this, "Doctor not found.");
}
}
private void deleteDoctor() {
String doctorNameToDelete = JOptionPane.showInputDialog(this, "Enter the name of the doctor to
delete:");
Document query = new Document("doctorName", doctorNameToDelete);
doctorCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Doctor deleted successfully.");
displayDoctorData();
}
private void displaySupplierData() {
jTextArea1.setText("Supplier Data:\n");
jTextArea1.append(String.format("%-30s %-30s %-20s %-50s %-50s\n", "Name", "Contact Person", "Contact
Information", "Address", "List Of Supplied Medications"));
MongoCursor<Document> cursor = supplierCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String name = document.getString("Name");
String contactPerson = document.getString("ContactPerson");
String contactInformation = document.getString("ContactInformation");
String address = document.getString("Address");
String medications = document.getString("ListOfSuppliedMedications");
String medicationList = String.join(", ", medications);
jTextArea1.append(String.format("%-30s %-30s %-20s %-50s %-50s\n", name, contactPerson,
contactInformation, address, medicationList));
}
cursor.close();
}
private void addSupplier() {
String name = JOptionPane.showInputDialog(this, "Enter supplier name:");
String contactPerson = JOptionPane.showInputDialog(this, "Enter contact person:");
String contactInformation = JOptionPane.showInputDialog(this, "Enter contact information:");

28
String address = JOptionPane.showInputDialog(this, "Enter address:");
String medication = JOptionPane.showInputDialog(this, "Enter supplied medications (comma separated):");
Document supplierDocument;
supplierDocument = new Document("Name", name)
.append("ContactPerson", contactPerson)
.append("ContactInformation", contactInformation)
.append("Address", address)
.append("ListOfSuppliedMedications", medication);
supplierCollection.insertOne(supplierDocument);
JOptionPane.showMessageDialog(this, "Supplier added successfully.");
displaySupplierData();
}
private void updateSupplier() {
String nameToUpdate = JOptionPane.showInputDialog(this, "Enter the name of the supplier to update:");
Document query = new Document("Name", nameToUpdate);
Document existingSupplier = supplierCollection.find(query).first();
if (existingSupplier != null) {
String contactPerson = JOptionPane.showInputDialog(this, "Enter updated contact person:");
String contactInformation = JOptionPane.showInputDialog(this, "Enter updated contact information:");
String address = JOptionPane.showInputDialog(this, "Enter updated address:");
String medication = JOptionPane.showInputDialog(this, "Enter updated supplied medications (comma
separated):");
Document updatedSupplier = new Document("ContactPerson", contactPerson)
.append("ContactInformation", contactInformation)
.append("Address", address)
.append("ListOfSuppliedMedications", medication);
supplierCollection.updateOne(query, new Document("$set", updatedSupplier));
JOptionPane.showMessageDialog(this, "Supplier updated successfully.");
displaySupplierData();
} else {
JOptionPane.showMessageDialog(this, "Supplier not found.");
}
}
private void deleteSupplier() {
String nameToDelete = JOptionPane.showInputDialog(this, "Enter the name of the supplier to delete:");
Document query = new Document("Name", nameToDelete);
supplierCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Supplier deleted successfully.");
displaySupplierData();
}
private void displayMedicineData() {
jTextArea1.setText("Medicine Data:\n");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-10s %-15s %-10s %-15s %-20s\n",
"Name", "Brand", "Generic Name", "Dosage Form", "Strength", "Quantity",
"Unit Price", "Expiry Date", "Manufacturer"));
MongoCursor<Document> cursor = medicineCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String name = document.getString("Name");
String brand = document.getString("Brand");
String genericName = document.getString("GenericName");

29
String dosageForm = document.getString("DosageForm");
String strength = document.getString("Strength");
int quantityOnHand = document.getInteger("QuantityOnHand");
double unitPrice = document.getDouble("UnitPrice");
String expiryDate = document.getString("ExpiryDate");
String manufacturer = document.getString("Manufacturer");
jTextArea1.append(String.format("%-20s %-20s %-20s %-20s %-10s %-15s %-10s %-15s %-20s\n",
name, brand, genericName, dosageForm, strength, quantityOnHand,
unitPrice, expiryDate, manufacturer));
}
cursor.close();
}
private void addMedicine() {
String name = JOptionPane.showInputDialog(this, "Enter medicine name:");
String brand = JOptionPane.showInputDialog(this, "Enter brand:");
String genericName = JOptionPane.showInputDialog(this, "Enter generic name:");
String dosageForm = JOptionPane.showInputDialog(this, "Enter dosage form:");
String strength = JOptionPane.showInputDialog(this, "Enter strength:");
int quantityOnHand = Integer.parseInt(JOptionPane.showInputDialog(this, "Enter quantity on hand:"));
double unitPrice = Double.parseDouble(JOptionPane.showInputDialog(this, "Enter unit price:"));
String expiryDate = JOptionPane.showInputDialog(this, "Enter expiry date (YYYY-MM-DD):");
String manufacturer = JOptionPane.showInputDialog(this, "Enter manufacturer:");
Document medicineDocument = new Document("Name", name)
.append("Brand", brand)
.append("GenericName", genericName)
.append("DosageForm", dosageForm)
.append("Strength", strength)
.append("QuantityOnHand", quantityOnHand)
.append("UnitPrice", unitPrice)
.append("ExpiryDate", expiryDate)
.append("Manufacturer", manufacturer);
medicineCollection.insertOne(medicineDocument);
JOptionPane.showMessageDialog(this, "Medicine added successfully.");
displayMedicineData();
}
private void updateMedicine() {
String nameToUpdate = JOptionPane.showInputDialog(this, "Enter the name of the medicine to update:");
Document query = new Document("Name", nameToUpdate);
Document existingMedicine = medicineCollection.find(query).first();
if (existingMedicine != null) {
String brand = JOptionPane.showInputDialog(this, "Enter updated brand:");
String genericName = JOptionPane.showInputDialog(this, "Enter updated generic name:");
String dosageForm = JOptionPane.showInputDialog(this, "Enter updated dosage form:");
String strength = JOptionPane.showInputDialog(this, "Enter updated strength:");
int quantityOnHand = Integer.parseInt(JOptionPane.showInputDialog(this, "Enter updated quantity on
hand:"));
double unitPrice = Double.parseDouble(JOptionPane.showInputDialog(this, "Enter updated unit price:"));
String expiryDate = JOptionPane.showInputDialog(this, "Enter updated expiry date (YYYY-MM-DD):");
String manufacturer = JOptionPane.showInputDialog(this, "Enter updated manufacturer:");
Document updatedMedicine = new Document("Brand", brand)
.append("GenericName", genericName)

30
.append("DosageForm", dosageForm)
.append("Strength", strength)
.append("QuantityOnHand", quantityOnHand)
.append("UnitPrice", unitPrice)
.append("ExpiryDate", expiryDate)
.append("Manufacturer", manufacturer);
medicineCollection.updateOne(query, new Document("$set", updatedMedicine));
JOptionPane.showMessageDialog(this, "Medicine updated successfully.");
displayMedicineData();
} else {
JOptionPane.showMessageDialog(this, "Medicine not found.");
}
}
private void deleteMedicine() {
String nameToDelete = JOptionPane.showInputDialog(this, "Enter the name of the medicine to delete:");
Document query = new Document("Name", nameToDelete);
medicineCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Medicine deleted successfully.");
displayMedicineData();
}
private void displayPaymentData() {
jTextArea1.setText("Payment Data:\n");
jTextArea1.append(String.format("%-15s %-15s %-10s %-15s %-20s %-20s %-20s\n",
"Payment ID", "Transaction ID", "Amount", "Payment Method",
"Date & Time", "Customer Name", "Employee Name"));
MongoCursor<Document> cursor = paymentCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String paymentID = document.getString("PaymentID");
String transactionID = document.getString("TransactionID");
double amountPaid = document.getDouble("AmountPaid");
String paymentMethod = document.getString("PaymentMethod");
String dateTime = document.getString("DateTime");
String customerName = document.getString("CustomerName");
String employeeName = document.getString("EmployeeName");
jTextArea1.append(String.format("%-15s %-15s %-10.2f %-15s %-20s %-20s %-20s\n",
paymentID, transactionID, amountPaid, paymentMethod,
dateTime, customerName, employeeName));
}
cursor.close();
}
private void addPayment() {
String paymentID = JOptionPane.showInputDialog(this, "Enter payment ID:");
String transactionID = JOptionPane.showInputDialog(this, "Enter transaction ID:");
double amountPaid = Double.parseDouble(JOptionPane.showInputDialog(this, "Enter amount paid:"));
String paymentMethod = JOptionPane.showInputDialog(this, "Enter payment method:");
String dateTime = JOptionPane.showInputDialog(this, "Enter date and time (YYYY-MM-
DDTHH:MM:SS):");
String customerName = JOptionPane.showInputDialog(this, "Enter customer name:");
String employeeName = JOptionPane.showInputDialog(this, "Enter employee name:");
Document paymentDocument = new Document("PaymentID", paymentID)

31
.append("TransactionID", transactionID)
.append("AmountPaid", amountPaid)
.append("PaymentMethod", paymentMethod)
.append("DateTime", dateTime)
.append("CustomerName", customerName)
.append("EmployeeName", employeeName);
paymentCollection.insertOne(paymentDocument);
JOptionPane.showMessageDialog(this, "Payment added successfully.");
displayPaymentData();
}
private void updatePayment() {
String paymentIDToUpdate = JOptionPane.showInputDialog(this, "Enter the payment ID to update:");
Document query = new Document("PaymentID", paymentIDToUpdate);
Document existingPayment = paymentCollection.find(query).first();
if (existingPayment != null) {
String transactionID = JOptionPane.showInputDialog(this, "Enter updated transaction ID:");
double amountPaid = Double.parseDouble(JOptionPane.showInputDialog(this, "Enter updated amount
paid:"));
String paymentMethod = JOptionPane.showInputDialog(this, "Enter updated payment method:");
String dateTime = JOptionPane.showInputDialog(this, "Enter updated date and time (YYYY-MM-
DDTHH:MM:SS):");
String customerName = JOptionPane.showInputDialog(this, "Enter updated customer name:");
String employeeName = JOptionPane.showInputDialog(this, "Enter updated employee name:");
Document updatedPayment = new Document("TransactionID", transactionID)
.append("AmountPaid", amountPaid)
.append("PaymentMethod", paymentMethod)
.append("DateTime", dateTime)
.append("CustomerName", customerName)
.append("EmployeeName", employeeName);
paymentCollection.updateOne(query, new Document("$set", updatedPayment));
JOptionPane.showMessageDialog(this, "Payment updated successfully.");
displayPaymentData();
} else {
JOptionPane.showMessageDialog(this, "Payment not found.");
}
}
private void deletePayment() {
String paymentIDToDelete = JOptionPane.showInputDialog(this, "Enter the payment ID to delete:");
Document query = new Document("PaymentID", paymentIDToDelete);
paymentCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Payment deleted successfully.");
displayPaymentData();
}
private void displayCustomerData() {
jTextArea1.setText("Customer Data:\n");
jTextArea1.append(String.format("%-20s %-30s %-15s %-30s %-50s %-30s %-15s\n",
"Name", "Address", "Phone Number", "Email",
"Prescription History", "Insurance Info", "Date of Birth"));
MongoCursor<Document> cursor = customerCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();

32
String name = document.getString("Name");
String address = document.getString("Address");
String phoneNumber = document.getString("PhoneNumber");
String email = document.getString("Email");
String prescriptionHistory = document.getString("PrescriptionHistory");
String insuranceInformation = document.getString("InsuranceInformation");
String dateOfBirth = document.getString("DateOfBirth");
jTextArea1.append(String.format("%-20s %-30s %-15s %-30s %-50s %-30s %-15s\n",
name, address, phoneNumber, email,
String.join(", ", prescriptionHistory), insuranceInformation, dateOfBirth));
}
cursor.close();
}
private void addCustomer() {
String name = JOptionPane.showInputDialog(this, "Enter customer name:");
String address = JOptionPane.showInputDialog(this, "Enter address:");
String phoneNumber = JOptionPane.showInputDialog(this, "Enter phone number:");
String email = JOptionPane.showInputDialog(this, "Enter email:");
String prescriptionHistory = JOptionPane.showInputDialog(this, "Enter prescription history (comma
separated):");
String insuranceInformation = JOptionPane.showInputDialog(this, "Enter insurance information:");
String dateOfBirth = JOptionPane.showInputDialog(this, "Enter date of birth (YYYY-MM-DD):");
Document customerDocument = new Document("Name", name)
.append("Address", address)
.append("PhoneNumber", phoneNumber)
.append("Email", email)
.append("PrescriptionHistory", prescriptionHistory)
.append("InsuranceInformation", insuranceInformation)
.append("DateOfBirth", dateOfBirth);
customerCollection.insertOne(customerDocument);
JOptionPane.showMessageDialog(this, "Customer added successfully.");
displayCustomerData();
}
private void updateCustomer() {
String nameToUpdate = JOptionPane.showInputDialog(this, "Enter the name of the customer to update:");
Document query = new Document("Name", nameToUpdate);
Document existingCustomer = customerCollection.find(query).first();
if (existingCustomer != null) {
String address = JOptionPane.showInputDialog(this, "Enter updated address:");
String phoneNumber = JOptionPane.showInputDialog(this, "Enter updated phone number:");
String email = JOptionPane.showInputDialog(this, "Enter updated email:");
String prescriptionHistory = JOptionPane.showInputDialog(this, "Enter updated prescription history (comma
separated):");
String insuranceInformation = JOptionPane.showInputDialog(this, "Enter updated insurance information:");
String dateOfBirth = JOptionPane.showInputDialog(this, "Enter updated date of birth (YYYY-MM-DD):");
Document updatedCustomer = new Document("Address", address)
.append("PhoneNumber", phoneNumber)
.append("Email", email)
.append("PrescriptionHistory", prescriptionHistory)
.append("InsuranceInformation", insuranceInformation)
.append("DateOfBirth", dateOfBirth);

33
customerCollection.updateOne(query, new Document("$set", updatedCustomer));
JOptionPane.showMessageDialog(this, "Customer updated successfully.");
displayCustomerData();
} else {
JOptionPane.showMessageDialog(this, "Customer not found.");
}
}
private void deleteCustomer() {
String nameToDelete = JOptionPane.showInputDialog(this, "Enter the name of the customer to delete:");
Document query = new Document("Name", nameToDelete);
customerCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Customer deleted successfully.");
displayCustomerData();
}
private void displayPrescriptionData() {
jTextArea1.setText("Prescription Data:\n");
jTextArea1.append(String.format("%-20s %-20s %-20s %-30s %-30s %-15s %-15s\n",
"Prescription No.", "Patient Name", "Doctor Name", "Medicines Prescribed",
"Dosage Instructions", "Issue Date", "Expiry Date"));
MongoCursor<Document> cursor = prescriptionCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String prescriptionNumber = document.getString("PrescriptionNumber");
String patientName = document.getString("PatientName");
String doctorName = document.getString("DoctorName");
String medicinesPrescribed = document.getString("MedicinesPrescribed");
String dosageInstructions = document.getString("DosageInstructions");
String issueDate = document.getString("IssueDate");
String expiryDate = document.getString("ExpiryDate");
jTextArea1.append(String.format("%-20s %-20s %-20s %-30s %-30s %-15s %-15s\n",
prescriptionNumber, patientName, doctorName,
String.join(", ", medicinesPrescribed), dosageInstructions, issueDate, expiryDate));
}
cursor.close();
}
private void addPrescription() {
String prescriptionNumber = JOptionPane.showInputDialog(this, "Enter prescription number:");
String patientName = JOptionPane.showInputDialog(this, "Enter patient name:");
String doctorName = JOptionPane.showInputDialog(this, "Enter doctor name:");
String medicinesPrescribed = JOptionPane.showInputDialog(this, "Enter medicines prescribed (comma
separated):");
String dosageInstructions = JOptionPane.showInputDialog(this, "Enter dosage instructions:");
String issueDate = JOptionPane.showInputDialog(this, "Enter issue date (YYYY-MM-DD):");
String expiryDate = JOptionPane.showInputDialog(this, "Enter expiry date (YYYY-MM-DD):");
Document prescriptionDocument = new Document("PrescriptionNumber", prescriptionNumber)
.append("PatientName", patientName)
.append("DoctorName", doctorName)
.append("MedicinesPrescribed", medicinesPrescribed)
.append("DosageInstructions", dosageInstructions)
.append("IssueDate", issueDate)
.append("ExpiryDate", expiryDate);

34
prescriptionCollection.insertOne(prescriptionDocument);
JOptionPane.showMessageDialog(this, "Prescription added successfully.");
displayPrescriptionData();
}
private void updatePrescription() {
String prescriptionNumberToUpdate = JOptionPane.showInputDialog(this, "Enter the prescription number to
update:");
Document query = new Document("PrescriptionNumber", prescriptionNumberToUpdate);
Document existingPrescription = prescriptionCollection.find(query).first();
if (existingPrescription != null) {
String patientName = JOptionPane.showInputDialog(this, "Enter updated patient name:");
String doctorName = JOptionPane.showInputDialog(this, "Enter updated doctor name:");
String medicinesPrescribed = JOptionPane.showInputDialog(this, "Enter updated medicines prescribed
(comma separated):");
String dosageInstructions = JOptionPane.showInputDialog(this, "Enter updated dosage instructions:");
String issueDate = JOptionPane.showInputDialog(this, "Enter updated issue date (YYYY-MM-DD):");
String expiryDate = JOptionPane.showInputDialog(this, "Enter updated expiry date (YYYY-MM-DD):");

Document updatedPrescription = new Document("PatientName", patientName)


.append("DoctorName", doctorName)
.append("MedicinesPrescribed", medicinesPrescribed)
.append("DosageInstructions", dosageInstructions)
.append("IssueDate", issueDate)
.append("ExpiryDate", expiryDate);
prescriptionCollection.updateOne(query, new Document("$set", updatedPrescription));
JOptionPane.showMessageDialog(this, "Prescription updated successfully.");
displayPrescriptionData();
} else {
JOptionPane.showMessageDialog(this, "Prescription not found.");
}
}
private void deletePrescription() {
String prescriptionNumberToDelete = JOptionPane.showInputDialog(this, "Enter the prescription number to
delete:");
Document query = new Document("PrescriptionNumber", prescriptionNumberToDelete);
prescriptionCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Prescription deleted successfully.");
displayPrescriptionData();
}
private void displayTransactionData() {
jTextArea1.setText("Transaction Data:\n");
jTextArea1.append(String.format("%-15s %-20s %-20s %-20s %-20s %-30s %-10s %-15s\n",
"Transaction ID", "Date & Time", "Customer Name", "Employee Name",
"Prescription No.", "Medications Sold", "Total Amount", "Payment Method"));
MongoCursor<Document> cursor = transactionCollection.find().iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
String transactionID = document.getString("TransactionID");
String dateTime = document.getString("DateTime");
String customerName = document.getString("CustomerName");
String employeeName = document.getString("EmployeeName");

35
String prescriptionNumber = document.getString("PrescriptionNumber");
String medicationsSold = document.getString("MedicationsSold");
double totalAmount = document.getDouble("TotalAmount");
String paymentMethod = document.getString("PaymentMethod");
jTextArea1.append(String.format("%-15s %-20s %-20s %-20s %-20s %-30s %-10.2f %-15s\n",
transactionID, dateTime, customerName, employeeName,
prescriptionNumber, String.join(", ", medicationsSold), totalAmount, paymentMethod));
}
cursor.close();
}
private void addTransaction() {
String transactionID = JOptionPane.showInputDialog(this, "Enter transaction ID:");
String dateTime = JOptionPane.showInputDialog(this, "Enter date and time (YYYY-MM-
DDTHH:MM:SS):");
String customerName = JOptionPane.showInputDialog(this, "Enter customer name:");
String employeeName = JOptionPane.showInputDialog(this, "Enter employee name:");
String prescriptionNumber = JOptionPane.showInputDialog(this, "Enter prescription number:");
String medicationsSold = JOptionPane.showInputDialog(this, "Enter medications sold (comma separated):");
double totalAmount = Double.parseDouble(JOptionPane.showInputDialog(this, "Enter total amount:"));
String paymentMethod = JOptionPane.showInputDialog(this, "Enter payment method:");
Document transactionDocument = new Document("TransactionID", transactionID)
.append("DateTime", dateTime)
.append("CustomerName", customerName)
.append("EmployeeName", employeeName)
.append("PrescriptionNumber", prescriptionNumber)
.append("MedicationsSold", medicationsSold)
.append("TotalAmount", totalAmount)
.append("PaymentMethod", paymentMethod);
transactionCollection.insertOne(transactionDocument);
JOptionPane.showMessageDialog(this, "Transaction added successfully.");
displayTransactionData();
}
private void updateTransaction() {
String transactionIDToUpdate = JOptionPane.showInputDialog(this, "Enter the transaction ID to update:");
Document query = new Document("TransactionID", transactionIDToUpdate);
Document existingTransaction = transactionCollection.find(query).first();
if (existingTransaction != null) {
String dateTime = JOptionPane.showInputDialog(this, "Enter updated date and time (YYYY-MM-
DDTHH:MM:SS):");
String customerName = JOptionPane.showInputDialog(this, "Enter updated customer name:");
String employeeName = JOptionPane.showInputDialog(this, "Enter updated employee name:");
String prescriptionNumber = JOptionPane.showInputDialog(this, "Enter updated prescription number:");
String medicationsSold = JOptionPane.showInputDialog(this, "Enter updated medications sold (comma
separated):");
double totalAmount = Double.parseDouble(JOptionPane.showInputDialog(this, "Enter updated total
amount:"));
String paymentMethod = JOptionPane.showInputDialog(this, "Enter updated payment method:");
Document updatedTransaction = new Document("DateTime", dateTime)
.append("CustomerName", customerName)
.append("EmployeeName", employeeName)
.append("PrescriptionNumber", prescriptionNumber)

36
.append("MedicationsSold", medicationsSold)
.append("TotalAmount", totalAmount)
.append("PaymentMethod", paymentMethod);
transactionCollection.updateOne(query, new Document("$set", updatedTransaction));
JOptionPane.showMessageDialog(this, "Transaction updated successfully.");
displayTransactionData();
} else {
JOptionPane.showMessageDialog(this, "Transaction not found.");
}
}
private void deleteTransaction() {
String transactionIDToDelete = JOptionPane.showInputDialog(this, "Enter the transaction ID to delete:");
Document query = new Document("TransactionID", transactionIDToDelete);
transactionCollection.deleteOne(query);
JOptionPane.showMessageDialog(this, "Transaction deleted successfully.");
displayTransactionData();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(() -> {
Main main = new Main();
main.setVisible(true);
});
}
// Variables declaration - do not modify
private javax.swing.JButton addBranchButton2;
private javax.swing.JButton addCustomerButton2;
private javax.swing.JButton addDoctorButton2;
private javax.swing.JButton addEmployeeButton4;
private javax.swing.JButton addInventoryButton2;
private javax.swing.JButton addMedicineButton2;
private javax.swing.JButton addPaymentButton2;
private javax.swing.JButton addPrescriptionButton2;
private javax.swing.JButton addSupplierButton2;
private javax.swing.JButton addTransactionButton2;
private javax.swing.JButton deleteBranchButton2;
private javax.swing.JButton deleteCustomerButton2;
private javax.swing.JButton deleteDoctorButton2;
private javax.swing.JButton deleteEmployeeButton3;
private javax.swing.JButton deleteInventoryButton2;
private javax.swing.JButton deleteMedicineButton2;
private javax.swing.JButton deletePaymentButton2;
private javax.swing.JButton deletePrescriptionButton2;
private javax.swing.JButton deleteSupplierButton2;
private javax.swing.JButton deleteTransactionButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;

37
private javax.swing.JLabel jLabel27;
private javax.swing.JLabel jLabel28;
private javax.swing.JLabel jLabel29;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel30;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTabbedPane jTabbedPane11;
private javax.swing.JTabbedPane jTabbedPane12;
private javax.swing.JTabbedPane jTabbedPane25;
private javax.swing.JTabbedPane jTabbedPane26;
private javax.swing.JTabbedPane jTabbedPane27;
private javax.swing.JTabbedPane jTabbedPane28;
private javax.swing.JTabbedPane jTabbedPane29;
private javax.swing.JTabbedPane jTabbedPane30;
private javax.swing.JTabbedPane jTabbedPane31;
private javax.swing.JTabbedPane jTabbedPane32;
private javax.swing.JTabbedPane jTabbedPane33;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JButton updateBranchButton2;
private javax.swing.JButton updateCustomerButton2;
private javax.swing.JButton updateDoctorButton2;
private javax.swing.JButton updateEmployeeButton3;
private javax.swing.JButton updateMedicineButton2;
private javax.swing.JButton updatePaymentButton2;
private javax.swing.JButton updatePrescriptionButton2;
private javax.swing.JButton updateSupplierButton2;
private javax.swing.JButton updateTransactionButton2;
private javax.swing.JButton updateinventoryButton2;
private javax.swing.JButton viewBranchButton2;
private javax.swing.JButton viewCustomerButton2;
private javax.swing.JButton viewDoctorButton2;
private javax.swing.JButton viewEmployeeButton3;
private javax.swing.JButton viewInventoryButton2;
private javax.swing.JButton viewMedicineButton2;
private javax.swing.JButton viewPaymentButton2;
private javax.swing.JButton viewPrescriptionButton2;
private javax.swing.JButton viewSupplierButton2;
private javax.swing.JButton viewTransactionButton2;
// End of variables declaration
}

38
Applications of Project:
The DWATSON Pharmacy Database System is designed to address several key operational
challenges faced by pharmacies, leveraging modern technology to enhance efficiency, accuracy,
and customer service.
Conclusion:
The DWATSON Pharmacy Database System project successfully demonstrates the integration
of Java with MongoDB to create a functional and user-friendly database management system. By
focusing on key areas such as inventory management, sales tracking, customer management, and
employee records, the system addresses the critical needs of a pharmacy's operations.

Achievements:
Enhanced Efficiency: The system automates various manual processes, reducing the likelihood of
errors and significantly improving operational efficiency.
Data Accuracy and Reliability: With real-time updates and robust data management practices,
the system ensures that accurate information is always available.
User-Friendly Interface: The Java-based GUI makes the system accessible to users with varying
levels of technical knowledge, ensuring widespread usability.
Scalability: The use of MongoDB provides a scalable solution that can grow with the business,
accommodating increasing data volumes and evolving requirements.

Work Distribution:
1. AROOBA SHEHZADI:(231678)
Collections:
Customer
Pharmacy
Transaction
Others:
Lab Report

2. AHMAD RAZA (231564)


Collections:
Employee
Inventory
Pharmacy Branch
Doctor
Others:

Front Page Designing


3. M.MUHID (231600)
Collections:
Medicine
Supplier
Payment
Other:
Video Demonstration

39

You might also like