DB report

You might also like

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