SaaS Based Multi Doctor Appointment System

Docment is a SaaS Based Doctor Appointment System. In this system, a patient can free register and login and make an appointment with his/her desired doctor. Patient can search doctor based on location or chember departmentwise and appoint quickly. Doctor can also login and create treatment and prescription for his patients.

This system was made using the popular Laravel php framework. Strong security was maintained during the development and there is no sql injection, xss attack, csrf attack possible.

DocMent has the following features.

Key Features

Admin Features

Doctor Features

Patient Features

The installation of this script is super easy. If you can install normal php based scripts on your server, you can install our script. We will tell you how to install this script step by step on a server.

If you extract the zip file, you will see that there are total three folders.

The folder names are: sql, documentation and main_files. The "main_files" folder is the main laravel source codes. The "sql" folder contains the main database file "database.sql"

Creating Database using Cpanel

1. Login to your hosting's cpanel using the login information. You will see an interface like this:

2. You will get a search section in the cpanel. Search there by writing the word "database". You will get some options. Click on "MySQL® Database Wizard" option.

3. Then in Step 1, you will have to create a database. In the text field, give your database name and click on next step.

4. Then in Step 2, you will have to create a database user. Give your username and passwords here. Then click on "Create User" button.

5. Now a permission page will come. Just check the tick mark on "ALL PRIVILEGES" and you will see all the options will be automatically checked.

6. Click on the "Next Step" button in the bottom.

7. Database and user creation step is done. Now go back to home and again search like before with the word "phpmyadmin". Click on the "phpMyAdmin" option.

8. Now the main phpmyadmin page will come. Click on the newly created database "websolu1_testdb" from the left side.

9. Click on the "Import" option from top and then select the file "database.sql" that is in the "sql" folder of the script.

10. Then click on the "Go" button from bottom.

11. After the task is successful, you will get a success message.

12. All task related to database is done.

Uploading Files using Cpanel

1. In the search field of your cpanel, write the word "file". You will get a "File Manager" option. Click on that option.

2. Search for the "public_html" and go into there.

3. Now go to the folders that you got after extracting the main zip and compress the folder "main_files" using any software like winrar.

4. The zip file will be like this.

5. In the cpanel's "public_html", upload this zip file.

6. You will get an interface like this.

7. Drag and drop the zip file here or just click on the "Select File" and select the file from your computer. You will see a progress of uploading file. Wait until it is finished.

8. After finishing the upload, you will see a green bar. It indicates that upload is successful.

9. Now close the upload window. In the public_html section, press on "Go" button to refresh the page. Then you will see the zip file in the right side.

10. Do right click on that file and select "Extract" option.

11. Press on "Extract Files" button.

12. It will take only a few minutes. After finish, you will get a window like this.

13. Just close this window. Then double click on the "main_files" folder and go into there.

14. Now click on the "Select All" from top section.

15. Click on the "Move" option.

16. Delete the "main_files" from the box. Only keep this "/public_html/". Then click on "Move Files".

17. Now, click on "Up One Level".

18. Right click on ".env" file and click on "Edit".

19. Now edit this file and put the database name, username and password you created previously here. Then click on the "Save Changes" button.

Your task is done and you can use our script without any problem. :)

Uploading Files using FTP

1. Download any FTP client on your computer like "FileZilla". Search on Google by "FileZilla" or go to their website to download:

2. Use the first option to download

3. After download, install it and open. The interface will be like this:

4. You can collect your FTP information contacting your hosting provider. Or, going to cpanel, you can create your FTP. In cpanel, search for "FTP".

5. Put ftp username, password in the form. Become sure, you delete the marked box data in the following image.

6. Click on "Create FTP Account" button.

7. Your FTP information will be like this:
FTP Host: {your hosting provider will give you host name}
FTP Port: 21
FTP Username:
FTP Password: {that you gave while creating the FTP}

8. Now in filezilla put those information and click on "Quickconnect" button.

9. If connection is successful, you will get an interface like this:

10. Now in the left side box, go to the location where you have extracted the script's file. And in the right side, go to public_html.

11. Then right click on the "main_files" from left side box and click on "Upload". All the files then will be uploaded into the "public_html" of the right side.

12. Search the ".env" file, right click on it and click on "View/Edit" option.

13. You will see an interface like this.

Change the database, username and password from here and try to click on close button. When you will try to close, it will ask you for save before closing. Click on save and you are done!

Before using and run this script, you must have to change the following information:

1. Open the .env file with a text editor and change the database and email settings.

2. First, set up the database name, database_username and password.

3. Then set up the smtp_host, smtp_port, smtp_username, smtp_password.

Your host will provide these information to you. If you see email system is not working that means there is something problem with your server. Contact your host provider and they will fix you the problem.

You will need to make sure your server meets the following requirements:

The default credentials of the script are:

Admin Login

Login Email:
Login Password: 1234

Doctor Login

Login Email:
Login Password: 1234

Patient Login

Login Email:
Login Password: 1234

Payment methods can be set up from the admin panel. Go to "Setting > Payment Account". See:

Email Templates can be set up from the admin panel to send email in your preferred format. Go to "Setting > Email Template".See:

Recaptcha settings can be set up from the admin panel. Go to "Setting > Google Recaptcha". See:

To get your recaptcha keys, go to this link:
Select version 2.

Add your website's domain name or subdomain name here and after submit you will get a site key and secret key.

Theme color setting can be set up from the admin panel. Go to "Setting > Theme Color". See:

Preloader setting can be set up from the admin panel. Go to "Setting > Preloader". See:

Clear Data setting can be set up from the admin panel. Go to "Setting > Clear Database". If you want to use the software from scratch, you have to select this option. You do not need to remove the existing data one by one. See:

The main Admin can add more admins into the system. Other admins can not delete the main admin. But the main admin can delete other created admins in this system. Go to "Admin" from sidebar to do this task.

The script can be translated using the language option in the sidebar. Go to "Language" from sidebar. You can also change the menu text using this otion. See:

Before adding a doctor, admin will have to add a department. From doctor menu of the sidebar, admin can do it. Go to "Doctor > Department" in the sidebar to do this task.

For each department, admin can add multiple photos, videos and FAQs that will be shown in the front end.

In the front end, the data will be shown like this:

Admin can not delete a department that has doctor under it.

Before adding a doctor, admin will have to add a location. From doctor menu of the sidebar, admin can do it. Go to "Doctor > Location" in the sidebar to do this task.

Admin can not delete a location that has doctor under it.

Only admin can create doctors in this script. Doctor can not register himself. When admin will create a doctor and setup his password, an email will be sent to that email address. Go to "Doctor > Doctor" in the sidebar to do this task.

A doctor can not be deleted if he has any appointment with a patient.

Admin can create and manage doctor schedule from "Appointment > Schedule" of the sidebar.

Admin can create and manage habits from "Appointment > Habit" of the sidebar.

Admin can see and print all the registered patients from "Appointment > Patients" of the sidebar.

Admin can see and print all the doctorwise and datewise prescriptions from "Appointment > Prescription" of the sidebar.

Admin can see all the appointments from "Appointment > Appointment" of the sidebar.

Admin can see all the completed and pending orders from the order section of the sidebar.

If an appointment is ordered using bank payment method by patient, it will be set as pending until admin verify the payment manually.

Admin will view and accept the payment.

Admin can see all the Previous and Upcoming Zoom meeting withing doctor and patient.

From the top menu, patient can click on registration.

Just fill up the form and an email will be sent to patient's email. He needs to verify it. After verify he can login to the system.

From the top menu, patient can click on login.

If a patient does not confirm his registration, he can not login.

In the login page, there is a link to reset the password if patient forgets the existing password.

After login, patient will see his dashboard.

Patient can edit his profile from left sidebar.

Patient can change password from the left sidebar too.

Patient can easily make an appointment quickly clicking on the appointment button of the menu.

First he will have to select a department. Then doctor box will come. In that box, all the doctors under that department will be shown.

A date box will come. Patient will have to select a date from there.

From date, weekday will be checked if that doctor is available in that day. If doctor takes a leave on that particular day, patient can not book in that date too.

If doctor is available in that date, all his time schedule will be displayed.

After the "Submit" button click, patient will be redirected to the payment page.

Patient can easily make payment using PayPal, Stripe, Razorpay, Flutterwave, Paystack, Instamojo, Mollie or Bank from this page.

But if patient wants, he can make another appointment in the same procedure and pay together.

NB: If a patient does not fill up all his information, he can not see the payment page and the system will redirect him to the patient profile page. After completing the profile information, he can see the payment page and make payment.

Patient can see all his appointments as a list. See:

He can only see appointments that is treated by a doctor.

From the bottom of the page, patient can print this prescription.

Patient can see all his orders, appointments under that order.

Patient can see order detail in a popup.

Patient can see his all upcoming meeting.See:

Patient can see his all zoom meeting history.See:

Doctor will have to got to their login page first.

In this script, doctor can not make registration by their own. Admin will create doctors from admin panel.

In the login page, there is a link to reset the password if doctor forgets the existing password.

After login, doctor will see his dashboard.

In the dashboard, doctor can see his current day appointment list, new appointment list, earnings etc.

From new appointment table, doctor can see all the total appointments of the current day.

In the bottom of the dashboard page, doctor will see a chart of the current month earnings.

Doctor have to go top right section of the page and click on his photo first.

Then a page will come from where doctor can change his profile information.

Doctor can create a new treatment or prepare a prescription for a patient going to "Today New Appointments" section of the sidebar.

Click on the view button and the prescription form will come here.

Doctor can see all his appoint list from "Manage Appointment > Appointments History" section of the sidebar.

If he treated or not treated a patient, it will be shown there.

From the appointment history, when doctor will click on the view icon, prescription for that treamtment will come up.

Doctor can print the prescription from the bottom.

If doctor wants, he can click on the edit button to edit an existing prescription.

Doctor can manage his leave days from "Manage Leave" section.

Doctor can see his total earnings, search earnings between two dates, payment history etc. from this section.

Doctor can see his own time schedules added by admin in this section.

Doctor can send message to patients and receive message from patients in this section.

Doctor can Create Zoom Meeting, But before create a meeting, need to setup zoom Setting. Zoom settings can be set up from the Doctor panel. Go to "Live Consultation > Setting". See:

To get your Zoom Credentials, go to this link: . Select JWT and click create

After Click, Setup your app name and create app, Now Provide your basic information and continue. Zoom Credentials is here. See:

Now Doctor can be create zoom meeting from the Doctor panel. Go to "Live Consultation > Meeting". See:

If you need any help from us, you can contact via our support email:

Our support will reply within 24-48 hours.

Version 2.2

- Instamojo, Paystack and Mollie Payment Getway Integration

Changed Files:
- Controller/Admin/PaymentAccountController.php
- Controller/Admin/SettingsController.php
- Controller/Patient/PaymentController.php
- Controller/Patient/PaypalController.php
- views/admin/payment-account/edit.blade.php
- views/admin/settings/index.blade.php
- routes/web.php
- public/patient/css/style.css
- views/layouts/patient/header.blade.php
- views/patient/profile/payment.blade.php
- inserted last 16 rows in manage_texts.sql 
- inserted last 5 rows in validation_texts.sql 
- inserted 6 new column in payment_accounts.sql
- inserted 2 new column in razorpays.sql
- inserted 3 new column in flutterwaves.sql

New Files:
- App/Currency.php
- App/CurrencyCountry.php
- App/PaystackAndMollie.php
- App/InstamojoPayment.php
- currency_countries.sql
- currencies.sql
- instamojo_payments.sql
- paystack_and_mollies.sql


Version 2.1

- Flutterwave Payment Getway Integration
- Fixed currency rate issue
- Fixed paginate issue
- Fixed public path issues

Changed Files:
- inserted last 5 new rows in manage_texts.sql
- inserted last 2 new rows in validation_texts.sql
- inserted new column(currency_rate, data-type(double)) in settings.sql
- routes/web.php
- views/admin/payment-account/edit.blade.php
- views/admin/settings/index.blade.php
- Controller/Admin/SettingsController.php
- Controller/Admin/PaymentAccountController.php
- Controller/Patient/HomeController.php
- Controller/Patient/PaymentController.php
- Controller/Patient/PaypalControlle.php
- views/patient/profile/payment.blade.php
New Files:
- flutterwaves.sql 
- App\Flutterwave.php


Version 2.0

- Laravel Version Upgrade(7 to 8)
- Dynamic Language and Pagination
- Razorpay Payment Integration
- Fully RTL Support

Changed Files:
- Major changed, most of the files are changed.

Version 1.3

- Zoom Meeting Implemented.
- Dynamic Email Configuration.
- Admin and Patient prescription system minor bug fixed.
- Doctor search system minor bug fixed.
- sql file updated (There is an instruction into sql folder).

Changed Files:
- App/ManageText.php
- Controllers/Admin/DoctorController.php
- Controllers/Admin/PateintController.php
- Controllers/Admin/TextController.php
- Controllers/Patient/HomeController.php
- views/admin/prescribe/show.blade.php
- views/admin/manage-text/index.blade.php
- views/patient/profile/show-appointment.blade.php
- routes/web.php
- Controllers/Admin/DoctorController.php
- Controllers/Admin/SubscriberController.php
- Controllers/Admin/SettingsController.php
- Controllers/Admin/Auth/ForgotPasswordController.php
- Controllers/Auth/RegisterController.php
- Controllers/Doctor/Auth/ForgotPasswordController.php
- Controllers/Patient/ContactController.php
- Controllers/Patient/PaymentController.php
- Controllers/Patient/PaypalController.php

New Added Files:
- App/Mail/SendZoomMeetingLink.php
- App/Traits/ZoomMeetingTrait.php
- App/Helpers/MailHelper.php.php
- App/ZoomCredential.php
- App/EmailConfiguration.php
- App/ZoomMeeting.php
- App/MeetingHistory.php
- Controllers/Doctor/ZoomCredentalController.php
- Controllers/Doctor/MeetingController.php
- Controllers/Patient/MeetingController.php
- Controllers/Admin/MeetingController.php
- Controllers/Admin/EmailConfigurationController.php
- views/admin/zoom/meeting-history.blade.php
- views/admin/email-configuration/index.php
- views/patient/profile/meeting-history.blade.php
- views/patient/profile/upcoming-meeting.blade.php
- views/doctor/zoom/setting/index.blade.php
- views/doctor/zoom/meeting/index.blade.php
- views/doctor/zoom/meeting/create.blade.php
- views/doctor/zoom/meeting/edit.blade.php
- views/doctor/zoom/meeting/history.blade.php
- views/doctor/zoom/meeting/upcoming.blade.php

Version 1.2

- Doctor prescription system minor bug fixed.
- Confirm appointment mailing system minor bug fixed.
- Slug related some minor bug fixed.
- sql file updated.

Changed Files:
- Controllers/Doctor/AppointmentController.php
- Controllers/Patient/HomeController.php
- Controllers/Patient/PaypalController.php
- views/doctor/appointment/already-treated.blade.php
- views/doctor/appointment/edit-treatment.blade.php

Version 1.1

- Message system minor bug fixed.

Changed Files:
- routes/web.php

Version 1.0

Initial Release