{"id":20820538,"url":"https://github.com/tdr-void/e-channeling_system_in_servlets_and_jsp","last_synced_at":"2026-02-03T16:01:38.735Z","repository":{"id":248157841,"uuid":"826891255","full_name":"TDR-VOID/E-channeling_System_in_Servlets_and_JSP","owner":"TDR-VOID","description":"An E-Channeling System implemented with Java, JSP, MySQL, and styled with HTML and CSS, facilitating efficient scheduling and management for doctors and patients.","archived":false,"fork":false,"pushed_at":"2024-08-31T03:46:32.000Z","size":6792,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-06T05:26:29.159Z","etag":null,"topics":["jsp","mysql","mysql-database","netbeans-ide","servelts","tomcat-server","xampp"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TDR-VOID.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-10T15:30:13.000Z","updated_at":"2024-10-24T13:12:47.000Z","dependencies_parsed_at":"2024-08-01T18:13:10.133Z","dependency_job_id":"cc3a9df5-7457-424e-ba35-4cab684c4004","html_url":"https://github.com/TDR-VOID/E-channeling_System_in_Servlets_and_JSP","commit_stats":null,"previous_names":["tdr-void/e-channeling_system_in_servlets_and_jsp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TDR-VOID/E-channeling_System_in_Servlets_and_JSP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDR-VOID%2FE-channeling_System_in_Servlets_and_JSP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDR-VOID%2FE-channeling_System_in_Servlets_and_JSP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDR-VOID%2FE-channeling_System_in_Servlets_and_JSP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDR-VOID%2FE-channeling_System_in_Servlets_and_JSP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TDR-VOID","download_url":"https://codeload.github.com/TDR-VOID/E-channeling_System_in_Servlets_and_JSP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDR-VOID%2FE-channeling_System_in_Servlets_and_JSP/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261337139,"owners_count":23143837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jsp","mysql","mysql-database","netbeans-ide","servelts","tomcat-server","xampp"],"created_at":"2024-11-17T22:09:30.758Z","updated_at":"2026-02-03T16:01:33.699Z","avatar_url":"https://github.com/TDR-VOID.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# E-channeling System in Servlets and JSP\n\n## Overview\nThe 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.\n\nFor detailed project requirements, please refer to the [E-channeling System Requirements.pdf](doc/E-channeling_System_Requirements.pdf)\n\n\nScreenshots of the key pages in the E-Channeling System:\n\n\u003cdetails\u003e\n\u003csummary\u003eWelcome Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/welcome_page.png\" alt=\"Welcome Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoctor Login Page \u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_login.png\" alt=\"Doctor Login Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n   \n\u003cdetails\u003e\n\u003csummary\u003eDoctor Register Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_register.png\" alt=\"Doctor Register Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoctor Channeling Schedule Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_channeling_schedule.png\" alt=\"Doctor Channeling Schedule Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoctor Add New Schedule Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_add_new_schedule.png\" alt=\"Doctor Add New Schedule Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoctor Update Channeling Schedule Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_update_uhanneling_schedule.png\" alt=\"Doctor Update Channeling Schedule Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoctor Delete Schedule Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_delete_schedule.png\" alt=\"Doctor Delete Schedule Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoctor User Profile Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_user_profile.png\" alt=\"Doctor User Profile Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoctor Edit User Profile Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/doctor_edit_user_profile.png\" alt=\"Doctor Edit User Profile Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003ePatient Login Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_login.png\" alt=\"Patient Login Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePatient Register Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_register.png\" alt=\"Patient Register Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePatient Appointment List View Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_appointment_list_view.png\" alt=\"Patient Appointment List View Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eFull Appointment List View Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/full_appointment_list.png\" alt=\"Full Appointment List View Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePatient Confirmed Appointment List View Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_confirmed_appointment_list.png\" alt=\"Confirmed Appointment List View Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePatient User Profile Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_user_profile.png\" alt=\"Patient User Profile Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePatient Edit User Profile Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_edit_user_profile.png\" alt=\"Patient Edit User Profile Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePatient Confirm Appointment Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_confirm_appointment.png\" alt=\"Patient Confirm Appointment Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePatient Cancel Appointment Page\u003c/summary\u003e\n\u003cimg src=\"screenshots/patient_cancel_appointment.png\" alt=\"Patient Cancel Appointment Page\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n\n\n\u003cbr\u003e\n\n## Use Case Diagram \u0026 Class Diagram\n\n\u003cdetails\u003e\n\u003csummary\u003eUse Case Diagram\u003c/summary\u003e\n\u003cimg src=\"screenshots/Use_Case_Diagram.png\" alt=\"Use Case Diagram\" width=\"600\" /\u003e\n\u003c/details\u003e\n   \n\u003cdetails\u003e\n\u003csummary\u003eClass Diagram\u003c/summary\u003e\n\u003cimg src=\"screenshots/Class_Diagram.png\" alt=\"Class Diagram\" width=\"600\" /\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\n## Features\n1. Doctor Registration and Profile Management:\n- Doctors can register with a unique UserID, name, password, phone, and specialization.\n- After logging in, doctors can update their phone number and specialization.\n  \n2. Doctor Schedule Management:\n\n- Doctors can add, view, update, and delete their channelling schedules.\n- Each schedule includes the doctor’s ID, channelling date, time, and the maximum number of patients allowed.\n- The system ensures that a doctor can only have one channelling schedule per date.\n\n3. Patient Registration and Profile Management:\n\n- Patients can register with NIC, name, phone, and password.\n- After logging in, patients can view and update their personal information.\n- Patients cannot change their NIC.\n\n4. Appointment Booking:\n\n- Patients can view available channelling schedules and make appointments.\n- Patients can only book one appointment per channelling schedule to avoid conflicts.\n- Patients can view their confirmed appointments and cancel if necessary.\n\n5. Navigation and User Interface:\n\n- A consistent navigation bar is provided for ease of use, allowing access to various sections like appointment lists, personal appointments, user profiles, and logout.\n\n\u003cbr\u003e\n\n### Database Structure\nThe database for the E-channeling System is designed to manage information for doctors, patients, channelling schedules, and appointments. It includes the following tables:\n\n- Doctors Table: Stores information about doctors, including their userID, name, password, phone, and specialization.\n- Patients Table: Contains patient details such as NIC, name, password, phone, and email.\n- 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.\n- Appointments Table: Records the appointments made by patients, including channelling schedule ID, patient NIC, appointment date, appointment time, and status.\n\n\u003cdetails\u003e\n\u003csummary\u003eDatabase Structure\u003c/summary\u003e\n\u003cimg src=\"screenshots/Database_Structure.png\" alt=\"Database Structure\" width=\"800\" /\u003e\n\u003c/details\u003e\n\n#### Doctors Table\n\n| Column       | Data Type     | Constraints      |\n|--------------|---------------|------------------|\n| userID       | VARCHAR(10)   | PRIMARY KEY      |\n| name         | VARCHAR(100)  | NOT NULL         |\n| password     | VARCHAR(100)  | NOT NULL         |\n| phone        | VARCHAR(15)   | NOT NULL         |\n| specialization | VARCHAR(100) | NOT NULL        |\n\n#### Patients Table\n| Column       | Data Type     | Constraints      |\n|--------------|---------------|------------------|\n| NIC          | VARCHAR(12)   | PRIMARY KEY      |\n| name         | VARCHAR(100)  | NOT NULL         |\n| password     | VARCHAR(100)  | NOT NULL         |\n| phone        | VARCHAR(15)   | NOT NULL         |\n| email        | VARCHAR(100)  | NOT NULL         |\n\n#### Channeling Schedule Table\n| Column         | Data Type   | Constraints      |\n|----------------|-------------|------------------|\n| id             | INT         | PRIMARY KEY      |\n| doctor_id      | VARCHAR(10) | FOREIGN KEY      |\n| channeling_date| DATE        | NOT NULL         |\n| time           | TIME        | NOT NULL         |\n| max_patients   | INT         | NOT NULL         |\n| current_patients | INT       | NOT NULL         |\n\n#### Appointments Table\n| Column               | Data Type   | Constraints                     |\n|----------------------|-------------|---------------------------------|\n| channeling_schedule_id | INT       | FOREIGN KEY, COMPOSITE KEY      |\n| patient_NIC          | VARCHAR(12) | FOREIGN KEY, COMPOSITE KEY      |\n| appointment_date     | DATE        | NOT NULL                        |\n| appointment_time     | TIME        | NOT NULL                        |\n| status               | VARCHAR(20) | NOT NULL                        |\n\n\u003cbr\u003e\n\n\n## Setup\n### Initial Project Setup and Connecting Tomcat Server with NetBeans\n\u003cbr\u003e\n\n1. Download and Install NetBeans:\n- Download the latest version of NetBeans from the [official website.](https://netbeans.apache.org/front/main/download/)\n- Follow the installation instructions provided.\n\n2. Download and Install Apache Tomcat:\n- Download Apache Tomcat from the [official website.](https://tomcat.apache.org/whichversion.html)\n- Extract the downloaded ZIP file to a preferred location on your system.\n  \n3. Configure Apache Tomcat in NetBeans:\n- Open NetBeans.\n- Go to Tools \u003e Servers.\n- Click the \"Add Server\" in the Servers window.\n- Choose Apache Tomcat and specify the location of your Tomcat installation.\n- Complete the configuration by following the on-screen instructions.\n\n\u003cdetails\u003e\n\u003csummary\u003eConfigure Apache Tomcat\u003c/summary\u003e\n  \u003cdiv style=\"display: flex; justify-content: center;\"\u003e\n  \u003cimg src=\"screenshots/Servers_Window.png\" alt=\"Configure Apache Tomcat\" width=\"500\" /\u003e\n\u003c/div\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\n\n### Database Setup\n\n\u003cbr\u003e\n\nTo set up the database for the E-channeling System, follow these steps:\n\n1. Download and Install XAMPP:\n- Download XAMPP from the [official website.](https://www.apachefriends.org/download.html)\n- Follow the installation instructions provided.\n\n2. Start MySQL:\n- Open XAMPP Control Panel.\n- Start the MySQL service.\n\n3. Create and Populate the Database:\n\n- Open phpMyAdmin from the XAMPP Control Panel.\n- Create a new database named \"e_channeling_system\".\n\u003cbr\u003e\n\nRun the following SQL command to create the database:\n\n\u003cbr\u003e\n\n``` SQL\nCREATE DATABASE e_channeling_system;\n```\n  \n- Run the following SQL queries to create and populate the tables:\n\nSwitch to the newly created database:\n``` SQL\nUSE e_channeling_system;\n```\n\nRun the following SQL commands to create the necessary tables:\n\nCreate the Doctors Table\n``` SQL\nCREATE TABLE doctors (\n    userID VARCHAR(10) PRIMARY KEY,\n    name VARCHAR(100) NOT NULL,\n    password VARCHAR(100) NOT NULL,\n    phone VARCHAR(15) NOT NULL,\n    specialization VARCHAR(100) NOT NULL\n);\n```\nCreate the Patients Table\n``` SQL\nCREATE TABLE patients (\n    NIC VARCHAR(12) PRIMARY KEY,\n    name VARCHAR(100) NOT NULL,\n    password VARCHAR(100) NOT NULL,\n    phone VARCHAR(15) NOT NULL,\n    email VARCHAR(100) NOT NULL\n);\n```\nCreate the Channeling Schedule Table\n``` SQL\nCREATE TABLE channeling_schedule (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    doctor_id VARCHAR(10),\n    channeling_date DATE NOT NULL,\n    time TIME NOT NULL,\n    max_patients INT NOT NULL,\n    current_patients INT NOT NULL,\n    FOREIGN KEY (doctor_id) REFERENCES doctors(userID)\n);\n```\nCreate the Appointments Table\n``` SQL\nCREATE TABLE appointments (\n    channeling_schedule_id INT,\n    patient_NIC VARCHAR(12),\n    appointment_date DATE NOT NULL,\n    appointment_time TIME NOT NULL,\n    status VARCHAR(20) NOT NULL,\n    PRIMARY KEY (channeling_schedule_id, patient_NIC),\n    FOREIGN KEY (channeling_schedule_id) REFERENCES channeling_schedule(id),\n    FOREIGN KEY (patient_NIC) REFERENCES patients(NIC)\n);\n```\n\n\u003cbr\u003e\n\n## Technologies and Tools \n- Java Servlets\n- Java Server Pages (JSP)\n- MySQL Database\n- HTML/CSS for front-end design\n- Apache Tomcat for server deployment\n- XAMPP\n- Apache NetBeans\n\n\u003cbr\u003e\n\n## Contributions\nContributions to enhance the functionality and features of the e-channeling system are welcome. Please follow the standard GitHub workflow for submitting pull requests.\n\n\u003cbe\u003e\n\n\n## License\n\n[MIT License](LICENSE)\n\n\u003cbr\u003e\n\n\u003e [!NOTE]\n\u003e Ensure the MySQL JDBC driver (mysql-connector-java-...jar) is added to your project's \"WEB-INF/lib\" directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftdr-void%2Fe-channeling_system_in_servlets_and_jsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftdr-void%2Fe-channeling_system_in_servlets_and_jsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftdr-void%2Fe-channeling_system_in_servlets_and_jsp/lists"}