edoc: a PHP appointment booking system with three logins and a SQL dump
This PHP-based open source project is a web application for booking medical appointments. Patients can use the platform to easily schedule appointments with their doctors, saving time and effort. The project's source code is open for anyone to use, modify, and distribute according to their needs.
At a glance
- What is it?
- edoc is a plain PHP, HTML and CSS application for booking medical appointments, with separate dashboards for an administrator, doctors and patients. It ships as a source zip with a SQL file, or as a Docker Compose stack with PHP 7.3 and MariaDB, and it is a teaching project rather than a production one.
- Who is it for?
- edoc fits a student or a small clinic that wants a working appointment booking flow in plain PHP to read, modify or extend, since the source is open and the structure is easy to follow. It does not fit a real medical practice, because the demo credentials and the PHP version make it unsuitable for handling patient data, and the SECURITY.md is only a starting point.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 80 days ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Three roles, and the flow between them
edoc is described as a simple web project made for e-channeling using PHP, HTML and CSS, and the initiative is to facilitate online appointment requests for clients or patients of medical establishments including clinics and hospitals, while also helping doctors manage their appointments. The system comprises three key roles: administrator, doctor and patient. The administrator populates the list of doctors with their specialties and details, along with system credentials. Patients browse the site to find a doctor with the specialty they need, review that doctor's weekly schedule, select a day and time, and submit the request. The doctor then sees all their appointments and the patient requests for their availability. The scheduling model is therefore a request and approval loop rather than a direct booking, which is the right shape for a medical context even if the code is a demonstration.
The dashboards, and the credentials shipped with them
The feature list is split by role. The admin can add, edit and delete doctors, schedule new doctor sessions and remove them, view patient details, and view patient bookings. Doctors can view their appointments, view their scheduled sessions, view patient details, delete their account and edit their account settings. Patients can make an appointment online, create their own accounts, view their old bookings, delete their account and edit their account settings. The README then publishes the seeded logins for the three dashboards, and all three accounts share the password 123, with the addresses [email protected], [email protected] and [email protected]. That is a demo convenience, and it is also the single most important thing to change before the system is reachable by anyone but you, because patient accounts can be created by anyone and the seeded credentials are published in the readme.
Installing it the XAMPP way, in seven steps
The getting started section is a numbered list, and it is the whole installation guide.
1. Open your XAMPP Control Panel and start Apache and MySQL. 2. Extract the downloaded source code zip file. 3. Copy the extracted source code folder and paste it into the XAMPP's htdocs directory. 4. Browse the PHPMyAdmin in a browser, at http://localhost/phpmyadmin. 5. Create a new database named edoc. 6. Import the provided SQL file, which is known as DATABASE edoc.sql and is located inside the source code root folder. 7. Browse the system in a browser, at http://localhost/edoc-echanneling-main/.
The steps assume a local Apache with a MySQL server and a phpMyAdmin for the import, and the database name has to match the one in the SQL file. The repository root carries the SQL file as SQL_Database_edoc.sql, so step six is an import rather than a schema you have to write yourself, and the repository also has a SECURITY.md file, which is worth reading before you put this on a network.
A Docker Compose stack, and the PHP version it pins
There is also a containerised path, and it is a development convenience rather than a production plan. The compose file defines a web service built from the repository Dockerfile, published on port 8080 mapped to 80, with the project directory mounted into the web root, and a database service using the mariadb:10.5 image with a restart policy, the root password and the edoc database name in the environment, and the port published to 3306 with a named volume for the data.
web:
build: .
ports:
- "8080:80" # L'application sera accessible sur http://localhost:8080
volumes:
- .:/var/www/htmlThe Dockerfile is based on the php:7.3-apache image, installs the mysqli, pdo and pdo_mysql extensions, copies the project into the web root, sets the ownership to the www-data user, exposes port 80 and runs apache2 in the foreground. The version pins are the significant detail. The README states the project was developed against Apache 2.4.39, PHP 7.3.5 and MySQL 5.7.26, and the container images match with PHP 7.3 and MariaDB 10.5. PHP 7.3 reached end of life, so this is a stack to run for learning rather than one to build on.
A file-per-role layout, and what a first look at the source shows
The repository layout is flat and readable, which is the point of a project like this. There is an index.html, a login.php, a logout.php, a connection.php, a create-account.php and a signup.php at the root, and then three directories, admin, doctor and patient, which hold the role-specific pages. The css directory holds the stylesheets, the img directory the images, and the Screenshots directory the images the README embeds. The licence is MIT and the project is described as open source so anyone can use, modify and distribute it according to their needs. The last push was on 2026-08-04 and the repository is not archived. There is a demo video linked as well, which is a reasonable way to see the three dashboards move before you install anything, and a Docker Compose file that predates the newer syntax since it declares version 3.8.
Editorial conclusion
edoc fits a student or a small clinic that wants a working appointment booking flow in plain PHP to read, modify or extend, since the source is open and the structure is easy to follow. It does not fit a real medical practice, because the demo credentials and the PHP version make it unsuitable for handling patient data, and the SECURITY.md is only a starting point. Verify first that you replace the seeded accounts and the sample passwords before exposing it anywhere, review the SQL dump for how sessions and credentials are handled, and treat the Docker Compose path as a development convenience rather than a deployment plan.
Frequently asked questions
How do I install the edoc doctor appointment system?
Start Apache and MySQL from XAMPP, extract the source zip into the htdocs directory, create a database named edoc in PHPMyAdmin, import the SQL file DATABASE edoc.sql from the source root, and then open the app in a browser. A Docker Compose path with a PHP 7.3 Apache image and MariaDB 10.5 is also provided.
What roles does the edoc system have?
Three: administrator, doctor and patient. The admin manages doctors, their sessions and patient bookings, doctors view their appointments and sessions, and patients make appointment requests, create their own accounts and review their old bookings.
What are the default login credentials for edoc?
The README publishes the seeded accounts for the three dashboards: [email protected], [email protected] and [email protected], each with the password 123. These are demo credentials and should be changed before the system is reachable by anyone else.
What technology does edoc use?
Plain PHP, HTML and CSS with a MySQL database. The README states the project was developed against Apache 2.4.39, PHP 7.3.5 and MySQL 5.7.26, and the Docker setup mirrors that with a php:7.3-apache image and MariaDB 10.5. The licence is MIT.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/hashenudara-edoc-doctor-appointment-system)Was this useful?