# edoc: a PHP appointment booking system with three logins and a SQL dump

> 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.

**HashenUdara/edoc-doctor-appointment-system** — 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.

- Repository: https://github.com/HashenUdara/edoc-doctor-appointment-system
- Stars: 582 · Forks: 259
- Language: PHP
- License: MIT
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/hashenudara-edoc-doctor-appointment-system

## 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 admin@edoc.com, doctor@edoc.com and patient@edoc.com. 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.

```yaml
  web:
    build: .
    ports:
      - "8080:80"  # L'application sera accessible sur http://localhost:8080
    volumes:
      - .:/var/www/html
```

The 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.

## 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.

## FAQ

### 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: admin@edoc.com, doctor@edoc.com and patient@edoc.com, 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.

## Sources

- [HashenUdara/edoc-doctor-appointment-system on GitHub](https://github.com/HashenUdara/edoc-doctor-appointment-system)
- [Issues](https://github.com/HashenUdara/edoc-doctor-appointment-system/issues)
- [License: MIT](https://github.com/HashenUdara/edoc-doctor-appointment-system/blob/main/LICENSE)
- [README](https://github.com/HashenUdara/edoc-doctor-appointment-system/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/hashenudara-edoc-doctor-appointment-system
