This is a dental clinic Management System to organize and facilitate daily office work in dental clinics, built in the form of a GUI desktop application developed in Java using Sqlite as its database. The GUI was designed using Swing and the database connectivity was managed using JDBC API.
This application can be used by small dental clinics to easily manage a clinic of all their,
- Supervisors
- Receptionists
- Patients
- Doctors
- Appointments
- Invoices
- This application Supports two user types:
- Supervisors
- Receptionists
Supervisors can:
- Manage receptionists (Add receptionist, Update receptionist, Delete receptionist, Search receptionists record).
- Manage doctors (Add doctor, Update doctor, Delete doctor, Search doctors record).
- Manage supervisors (Add supervisor, Update supervisor, Delete supervisor, Search supervisors record).
- Search patients record.
- Search appointments record.
- Search invoices record.
- Search Revenues.
Receptionists can:
- Manage patients data (Add patient data, Update patient data, Delete patient data, Search patients record).
- Manage appointments (Booking an appointment, Update appointments, Delete appointments, Search appointments record).
- Search invoices record.
Note:
1. When an appointment booked, automatically an invoice generated for this appointment with all data.
2. When an appointment updated, automatically the invoice for this appointment will be updated.
3. When an appointment deleted, automatically the invoice for this appointment will be deleted.
- First To run a JAR file on Windows, Mac or Linux, follow these steps:
- Verify that Java is installed on your computer.
- Confirm the computer’s PATH variable includes Java’s \bin directory.
- Double-click the JAR file if auto-run has been configured.
- Run the JAR file on the command line or terminal window if a double-clicking fails.
- To run the software Double-click MyDentist JAR file in MyDentist folder.
- Requirement to run the JAR file you should have JAVA 1.8
Note:
- To make the software work with the database, the JAR file and DATABASE file should STAY together in the same folder.
Here the users enter their username and password and select user type "Supervisor or Receptionist", Then the login page takes in the credentials entered by the user and verifies with the database.
This page will show up after a successful login when users select "Supervisor" as user type, It will show supervisor info "Name, Last Name, Username, User Type".
In this page you will see patients record and you can search specific patient by entering patient ID.
In this page you can choose how you want to search an appointment.
In this page you can search an appointment by doctor name and "Date or Time or Both".
In this page you can search an appointment by appointment ID, and you can see all cancelled/current appointments.
In this page you can see all appointments for selected date/service, you can search appointment for specific date and service, and also you can search appointment for specific date and time.
In this page you can see all appointments for selected patient "Patient ID", you can search appointment for specific patient "Patient ID" and date, you can search appointment for specific patient "Patient ID" and doctor name, and also you can search appointment for specific patient "Patient ID" and date and doctor name.
In this page you can see all appointments added/updated/cancelled by selected receptionist name.
In this page you can choose how you want to search an invoice.
In this page you can search an invoice by doctor name and "Date or Time or Both".
In this page you can search an invoice by invoice ID, and you can see all cancelled/current invoices.
In this page you can see all invoices for selected date/service, you can search invoice for specific date and service, and also you can search invoice for specific date and time.
In this page you can see all invoices for selected patient "Patient ID", you can search invoice for specific patient "Patient ID" and date, you can search invoice for specific patient "Patient ID" and doctor name, and also you can search invoice for specific patient "Patient ID" and date and doctor name.
In this page you can see all invoices added/updated/cancelled by selected receptionist name.
In this page you can choose if you want to search revenues or search revenues for specific date.
In this page you can search revenues for specific date.
Work in progress.
In this page you can choose to enter supervisors main page to modify data for specific supervisor, or to enter receptionists main page to modify data for specific receptionist, or to enter doctors main page to modify data for specific doctor.
In this page you can choose to add/update/delete a supervisor, or to see supervisors record.
In this page you can add new supervisor.
In this page you can update data for a specific supervisor.
In this page you can delete a specific supervisor.
In this page you can see all supervisors, you can search for a specific supervisor by supervisor ID, and you can see supervisors added/updated by selected supervisor name.
In this page you can choose to add/update/delete a receptionist, or to see receptionists record.
In this page you can add new receptionist.
In this page you can update data for a specific receptionist.
In this page you can delete a specific receptionist.
In this page you can see all receptionists, you can search for a specific receptionist by receptionist ID, and you can see receptionists added/updated by selected supervisor name.
In this page you can choose to add/update/delete a doctor, or to see doctors record.
In this page you can add new doctor.
In this page you can update data for a specific doctor.
In this page you can delete a specific doctor.
In this page you can see all doctors, you can search for a specific doctor by doctor ID, and you can see doctors added/updated by selected supervisor name.
In this page you can see developer picture and info (Name, EMail, Phone NO, Facebook, and Twitter).
This page will show up after a successful login when users select "Receptionist" as user type, It will show receptionist info "Name, Last Name, Username, User Type".
In this page you can choose to add/update/delete patient, or to see patients record.
In this page you can add new patient.
In this page you can update data for a specific patient.
In this page you can delete a specific patient.
In this page you will see patients record and you can search specific patient by entering patient ID.
In this page you can choose to add “Book”/update/delete appointment, or to see appointments record.
In this page you can add new appointment.
In this page you can update data for a specific appointment.
In this page you can cancel a specific appointment.
In this page you can choose how you want to search an appointment.
In this page you can search an appointment by doctor name and "Date or Time or Both".
Receptionists Dashboard – Appointments Page – Appointments record Page – Search by appointment ID Page
In this page you can search an appointment by appointment ID, and you can see all cancelled/current appointments.
Receptionists Dashboard – Appointments Page – Appointments record Page – Search by date and service Page
In this page you can see all appointments for selected date/service, you can search appointment for specific date and service, and also you can search appointment for specific date and time.
In this page you can see all appointments for selected patient "Patient ID", you can search appointment for specific patient "Patient ID" and date, you can search appointment for specific patient "Patient ID" and doctor name, and also you can search appointment for specific patient "Patient ID" and date and doctor name.
In this page you can choose how you want to search an invoice.
In this page you can search an invoice by doctor name and "Date or Time or Both".
In this page you can search an invoice by invoice ID, and you can see all cancelled/current invoices.
In this page you can see all invoices for selected date/service, you can search invoice for specific date and service, and also you can search invoice for specific date and time.
In this page you can see all invoices for selected patient "Patient ID", you can search invoice for specific patient "Patient ID" and date, you can search invoice for specific patient "Patient ID" and doctor name, and also you can search invoice for specific patient "Patient ID" and date and doctor name.
In this page you can see developer picture and info (Name, EMail, Phone NO, Facebook, and Twitter).
The following are the technologies that have been used in the development of this project.
- JDK 8
- Sqlite 3 (for database)
- Java Swing (for the GUI designer)
- Eclipse IDE
- SQLite Studio
The ER diagram for the sample schema that has been used in the application.
The software code has been divided into five different packages:
- Data Access Object (DAO): Contains the data access layer of the software that interacts directly with the database and its tables. Used for retrieval and modification of data.
- Data Transfer Object (DTO): Contains the data transfer layer that allows the data to be transferred between the data access layer and the UI layer.
- Database: Contains the ConnectionFactory class that retrieves the database connection and verifies user credentials for the application.
- User Interface (UI): Contains all the GUI classes making up the interface layer of the software.
- User Interface Icons (UI.Icons): Contains all icons used in this project.
This project is a work in progress and more features are yet to be added with new technologies.