Skip to content

An E-Channeling System implemented with Java, JSP, MySQL, and styled with HTML and CSS, facilitating efficient scheduling and management for doctors and patients.

License

Notifications You must be signed in to change notification settings

TDR-VOID/E-channeling_System_in_Servlets_and_JSP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-channeling System in Servlets and JSP

Overview

The E-channeling System is a web-based application developed using Java Servlets and JSP, aimed at facilitating the appointment booking process between doctors and patients. This system allows doctors to manage their channelling schedules and patients to book appointments, view their schedules, and manage their profiles. The system ensures data persistence by storing all information in a MySQL database.

For detailed project requirements, please refer to the E-channeling System Requirements.pdf

Screenshots of the key pages in the E-Channeling System:

Welcome Page Welcome Page
Doctor Login Page Doctor Login Page
Doctor Register Page Doctor Register Page
Doctor Channeling Schedule Page Doctor Channeling Schedule Page
Doctor Add New Schedule Page Doctor Add New Schedule Page
Doctor Update Channeling Schedule Page Doctor Update Channeling Schedule Page
Doctor Delete Schedule Page Doctor Delete Schedule Page
Doctor User Profile Page Doctor User Profile Page
Doctor Edit User Profile Page Doctor Edit User Profile Page
Patient Login Page Patient Login Page
Patient Register Page Patient Register Page
Patient Appointment List View Page Patient Appointment List View Page
Full Appointment List View Page Full Appointment List View Page
Patient Confirmed Appointment List View Page Confirmed Appointment List View Page
Patient User Profile Page Patient User Profile Page
Patient Edit User Profile Page Patient Edit User Profile Page
Patient Confirm Appointment Page Patient Confirm Appointment Page
Patient Cancel Appointment Page Patient Cancel Appointment Page

Use Case Diagram & Class Diagram

Use Case Diagram Use Case Diagram
Class Diagram Class Diagram

Features

  1. Doctor Registration and Profile Management:
  • Doctors can register with a unique UserID, name, password, phone, and specialization.
  • After logging in, doctors can update their phone number and specialization.
  1. Doctor Schedule Management:
  • Doctors can add, view, update, and delete their channelling schedules.
  • Each schedule includes the doctor’s ID, channelling date, time, and the maximum number of patients allowed.
  • The system ensures that a doctor can only have one channelling schedule per date.
  1. Patient Registration and Profile Management:
  • Patients can register with NIC, name, phone, and password.
  • After logging in, patients can view and update their personal information.
  • Patients cannot change their NIC.
  1. Appointment Booking:
  • Patients can view available channelling schedules and make appointments.
  • Patients can only book one appointment per channelling schedule to avoid conflicts.
  • Patients can view their confirmed appointments and cancel if necessary.
  1. Navigation and User Interface:
  • A consistent navigation bar is provided for ease of use, allowing access to various sections like appointment lists, personal appointments, user profiles, and logout.

Database Structure

The database for the E-channeling System is designed to manage information for doctors, patients, channelling schedules, and appointments. It includes the following tables:

  • Doctors Table: Stores information about doctors, including their userID, name, password, phone, and specialization.
  • Patients Table: Contains patient details such as NIC, name, password, phone, and email.
  • Channeling Schedule Table: Manages the scheduling of doctor appointments, including details like doctor ID, channelling date, time, maximum patients allowed, and the current number of patients.
  • Appointments Table: Records the appointments made by patients, including channelling schedule ID, patient NIC, appointment date, appointment time, and status.
Database Structure Database Structure

Doctors Table

Column Data Type Constraints
userID VARCHAR(10) PRIMARY KEY
name VARCHAR(100) NOT NULL
password VARCHAR(100) NOT NULL
phone VARCHAR(15) NOT NULL
specialization VARCHAR(100) NOT NULL

Patients Table

Column Data Type Constraints
NIC VARCHAR(12) PRIMARY KEY
name VARCHAR(100) NOT NULL
password VARCHAR(100) NOT NULL
phone VARCHAR(15) NOT NULL
email VARCHAR(100) NOT NULL

Channeling Schedule Table

Column Data Type Constraints
id INT PRIMARY KEY
doctor_id VARCHAR(10) FOREIGN KEY
channeling_date DATE NOT NULL
time TIME NOT NULL
max_patients INT NOT NULL
current_patients INT NOT NULL

Appointments Table

Column Data Type Constraints
channeling_schedule_id INT FOREIGN KEY, COMPOSITE KEY
patient_NIC VARCHAR(12) FOREIGN KEY, COMPOSITE KEY
appointment_date DATE NOT NULL
appointment_time TIME NOT NULL
status VARCHAR(20) NOT NULL

Setup

Initial Project Setup and Connecting Tomcat Server with NetBeans


  1. Download and Install NetBeans:
  • Download the latest version of NetBeans from the official website.
  • Follow the installation instructions provided.
  1. Download and Install Apache Tomcat:
  • Download Apache Tomcat from the official website.
  • Extract the downloaded ZIP file to a preferred location on your system.
  1. Configure Apache Tomcat in NetBeans:
  • Open NetBeans.
  • Go to Tools > Servers.
  • Click the "Add Server" in the Servers window.
  • Choose Apache Tomcat and specify the location of your Tomcat installation.
  • Complete the configuration by following the on-screen instructions.
Configure Apache Tomcat
Configure Apache Tomcat

Database Setup


To set up the database for the E-channeling System, follow these steps:

  1. Download and Install XAMPP:
  • Download XAMPP from the official website.
  • Follow the installation instructions provided.
  1. Start MySQL:
  • Open XAMPP Control Panel.
  • Start the MySQL service.
  1. Create and Populate the Database:
  • Open phpMyAdmin from the XAMPP Control Panel.
  • Create a new database named "e_channeling_system".

Run the following SQL command to create the database:


CREATE DATABASE e_channeling_system;
  • Run the following SQL queries to create and populate the tables:

Switch to the newly created database:

USE e_channeling_system;

Run the following SQL commands to create the necessary tables:

Create the Doctors Table

CREATE TABLE doctors (
    userID VARCHAR(10) PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    password VARCHAR(100) NOT NULL,
    phone VARCHAR(15) NOT NULL,
    specialization VARCHAR(100) NOT NULL
);

Create the Patients Table

CREATE TABLE patients (
    NIC VARCHAR(12) PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    password VARCHAR(100) NOT NULL,
    phone VARCHAR(15) NOT NULL,
    email VARCHAR(100) NOT NULL
);

Create the Channeling Schedule Table

CREATE TABLE channeling_schedule (
    id INT AUTO_INCREMENT PRIMARY KEY,
    doctor_id VARCHAR(10),
    channeling_date DATE NOT NULL,
    time TIME NOT NULL,
    max_patients INT NOT NULL,
    current_patients INT NOT NULL,
    FOREIGN KEY (doctor_id) REFERENCES doctors(userID)
);

Create the Appointments Table

CREATE TABLE appointments (
    channeling_schedule_id INT,
    patient_NIC VARCHAR(12),
    appointment_date DATE NOT NULL,
    appointment_time TIME NOT NULL,
    status VARCHAR(20) NOT NULL,
    PRIMARY KEY (channeling_schedule_id, patient_NIC),
    FOREIGN KEY (channeling_schedule_id) REFERENCES channeling_schedule(id),
    FOREIGN KEY (patient_NIC) REFERENCES patients(NIC)
);

Technologies and Tools

  • Java Servlets
  • Java Server Pages (JSP)
  • MySQL Database
  • HTML/CSS for front-end design
  • Apache Tomcat for server deployment
  • XAMPP
  • Apache NetBeans

Contributions

Contributions to enhance the functionality and features of the e-channeling system are welcome. Please follow the standard GitHub workflow for submitting pull requests.

License

MIT License


Note

Ensure the MySQL JDBC driver (mysql-connector-java-...jar) is added to your project's "WEB-INF/lib" directory.

About

An E-Channeling System implemented with Java, JSP, MySQL, and styled with HTML and CSS, facilitating efficient scheduling and management for doctors and patients.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published