1 An-Najah National University Faculty of Engineering and Information Technology Computer Engineering Department Software Graduation Project Students: Alaa Adham & Batool Kharraz Supervisor: Dr. Abdallah Rashed 2023/2024 2 Contents Acknowledgment .......................................................................................................................................... 3 Abstract ......................................................................................................................................................... 4 Chapter 1 ....................................................................................................................................................... 5 1.1 Introduction ........................................................................................................................................ 5 1.1 Problem ....................................................................................................................................... 5 1.2 Objectives .................................................................................................................................... 5 1.3 Scope ............................................................................................................................................ 5 1.4 Importance .................................................................................................................................. 6 1.5 Organization of the report ............................................................................................................ 6 Chapter 2 ....................................................................................................................................................... 7 Constraints ................................................................................................................................................ 7 2.1 Limited time: ................................................................................................................................... 7 2.2 Technical problem: .......................................................................................................................... 7 2.3 Project Adjustments through the developing process: ................................................................... 7 Chapter 3 ....................................................................................................................................................... 8 3.1 Literature Review ................................................................................................................................ 8 Chapter 4 ....................................................................................................................................................... 9 Methodology ............................................................................................................................................. 9 4.1 Technical Preference ........................................................................................................................... 9 4.1.1 Framework ................................................................................................................................... 9 4.1.2 Design ........................................................................................................................................... 9 4.1.3 Backend ........................................................................................................................................ 9 4.1.4 Tools ........................................................................................................................................... 10 4.2 System Features Implementation ..................................................................................................... 12 Chapter 5 ..................................................................................................................................................... 38 5.1 Results and discussion ...................................................................................................................... 38 Chapter 6 ..................................................................................................................................................... 39 6.1 Conclusions and Recommendations ................................................................................................. 39 6.2 Future work ....................................................................................................................................... 39 Chapter 7 ..................................................................................................................................................... 40 7.1 References ......................................................................................................................................... 40 3 Acknowledgment We would like to thank Dr. Abdallah Rashed for his valuable and constructive suggestions during the planning and development of this project. We want to thank our parents and our families; they have been a source of strength and support for us. They kept us focused on the track. For their continual support, we are forever grateful, and finally, we should Thanks to the Computer Engineering Department. 4 Abstract Sometimes patients have a problem finding an appointment. This could include long wait times for available appointments, difficulty getting through to the doctor's office to schedule an appointment, limited availability of convenient appointment times, or challenges in finding a healthcare provider that accepts their insurance. Marham app/website will provide a facility the patients to search for doctors in their city and find available appointments that suit their time. it will provide different medical categories and each category has different doctors that specialize in this category in different cities. Each user can search for any doctor in any category and search for doctors in specific categories and cities. And can pay the reservation price when the user books the appointment. if the appointment goes well the doctor will write a medical diagnosis that includes the disease and pharmaceutical the user can see their pharmaceutical and the time of each one the app will send a notification for the medicine, and many other features we will explain later. So, the purpose of creating a medical appointment application is to provide a convenient and efficient way for patients to schedule and manage their medical appointments. This can help improve the overall patient experience by reducing wait times, streamlining the appointment scheduling process, and allowing patients to easily access and manage their appointments from their mobile devices. Additionally, the application can also help healthcare providers to better manage their appointment schedules, reduce no-shows, and improve overall operational efficiency. 5 Chapter 1 1.1 Introduction 1.1 Problem The problem that the patient faced with finding an appointment could include long wait times for available appointments, difficulty in getting through to the doctor's office to schedule an appointment, limited availability of convenient appointment times, or challenges in finding a healthcare provider that accepts their insurance. 1.2 Objectives Creating an application with a friendly user interface that includes these features: -Help the patient to find any doctors in any specialty they want and in any city. -Help the patient to book an appointment easily without the need to wait which decreases time wasting and pay for the diagnosis online and notify them before the appointment. -Help the patient to remember their medicine by sending notifications. -Help the patient chat with a doctor if something is important. -Help the doctor to know the appointments he has each day. -Helping the doctor to make his schedule, chatting with patients, searching for patients to know what previous disease they have and what medicines they take, and writing diagnoses for patients. -Each user uses this app and books an appointment through it he will collect coins that help him to take discounts or the user can pay for coins. 1.3 Scope Appointment Scheduling: Allowing users to schedule, reschedule, and cancel appointments with healthcare providers. Provider Search: Helping users find healthcare providers based on location, specialty, and availability. Reminders: Send notifications and reminders to users about upcoming appointments, medication schedules, and follow-up visits. Telemedicine Integration: Facilitating virtual appointments and consultations with healthcare providers via chat. Patient Records Access: Allowing users to access their medical records, test results, and prescription history. 6 1.4 Importance It is helpful for people to have an application that makes booking appointments easier and provides a convenient and efficient way for patients to schedule and manage their medical appointments. and improve the overall patient experience by reducing wait times, streamlining the appointment scheduling process, and allowing patients to easily access and manage their appointments from their mobile devices. 1.5 Organization of the report The next chapter will show the constraints that were faced while developing this app. Then next, it will show the procedures that have been followed to finish the work, as well as the technologies and tools that have been used to build this app. And in the end, we will discuss the conclusion and the recommendations. 7 Chapter 2 Constraints 2.1 Limited time: It takes time to learn Flutter and find resources that can give us the desired benefits, and because we did not use it before, we faced some challenges in creating some features. Another challenge we faced was how to organize and divide our time between working on the project and studying for other courses. 2.2 Technical problem: At first, when we installed Android, we faced problems that made our laptops slow because of the high version of the Android application so we tried to lower the version to another that suited our laptops and made the operation of debugging faster. 2.3 Project Adjustments through the developing process: While developing this application, we made every effort to ensure that it is user- friendly for both doctors and patients. We have focused on creating a modern GUI and have added and modified some features based on feedback from the supervisor to make the application more helpful and contemporary. 8 Chapter 3 3.1 Literature Review The medical appointment application is a beneficial tool for both healthcare providers and patients. It facilitates the scheduling and management of appointments, access to medical records, and secure communication between patients and healthcare providers. One of the most significant features of the medical appointment application is its user-friendly interface. Patients can effortlessly navigate the app to book appointments, view their medical history and communicate with their healthcare providers in a secure manner. This ease of use can help to improve patient involvement and satisfaction with the healthcare system. Moreover, the medical appointment application is proficient in streamlining the appointment scheduling process. Patients can easily view the available appointment times and schedule their appointments without having to make a phone call to the office, resulting in shorter wait times and a better patient experience. Furthermore, the application enables patients to view their medical records and communicate with their healthcare providers, which can lead to better-informed patients and efficient communication between patients and providers. Patients can quickly access their medical history and test results and securely message their providers with any questions or concerns. 9 Chapter 4 Methodology After witnessing the challenges people face when going to the doctor, we developed an application to help patients avoid these issues and meet their expectations. 4.1 Technical Preference There are several approaches to programming languages and development, so we tried to find the most suitable and appropriate one. 4.1.1 Framework We used Flutter for Frontend, this framework is a dependable tool that is utilized to produce speedy applications for desktop, web, and mobile platforms. It allows for the creation of responsive code and is particularly notable for being both free and open source. 4.1.2 Design Once we have selected the language to develop the user interface, it is important to decide on the overall design of the pages. This includes choosing a logo that accurately represents the program, selecting a color scheme that is easy on the eyes and creates a positive experience for the user, and implementing a user-friendly front-end design. It is crucial to ensure that the user experience is pleasant and memorable for anyone who interacts with the application. 4.1.3 Backend Nodejs was used for the backend, which offers high performance and efficient handling of concurrent requests. It allows for streamlined development using JavaScript for both server-side and client-side. 1-Through the GUI interface, the user can send requests to the backend (which is sent to the API of the server), which processes and executes them to return results. These results are then displayed on the interface for the user to view. 2-We used Render Server which receives different requests from the user and all these requests are dealt with by its API so it can perform the operations. (Backend code is uploaded on this server) 10 4.1.4 Tools Visual Studio Code We used VS Code as my main Integrated Development Environment (IDE) to write and run my code. It provided essential functionalities and resources for editing, debugging, and managing our projects. Android Studio served as an emulator for testing the mobile app on Visual Studio. GitHub Which is used for version control and collaboration in group projects. Render We opted to use render as a hosting platform for our APIs to ensure a more reliable infrastructure and fixed endpoints, rather than relying solely on the local host environment deploying and serving. Postman we used it to test and debug API during the development. Cloudinary we used it for sorting, managing, and delivering the user’s and doctor’s images. 11 MongoDB Atlas is chosen for the Database, used for hosting, and managing MongoDB databases in the cloud. Database Table’s: 12 4.2 System Features Implementation Splash Screen: Which contains the application logo and will appear once the user opens the app 13 These pages show an overview of our app: 14 Login and Sign up Page: 15 After forgetting their password, the user will receive an email containing a code that they must enter to authenticate. 16 The email is sent which includes the code If the user enters the correct code this page will appear and the user can set new password 17 If the password matches the confirmed password, the user will be informed that the password was updated successfully. 18 The home page contains different categories and suggestions for doctors which is from the same city as the user, a chat page, a search, and the bar includes a profile of the user and coins pay, appointments. 19 Doctor Page Category page 20 If the user clicks on any date this page will appear If the user book any available appointment : 21 "The user can choose the preferred method of payment." If the preferred way is using PayPal: If the preferred way is using Visa: 22 After Enter the information of visa card we will check if it’s correct information or not: If not: If it’s correct: 23 A profile page is required that displays the user's information along with the list of medicines they are taking. Pay Coins page, users can receive a discount when booking an appointment. Which contains several packages of coins If a user selects a package to pay, the payment method will be the same as the previously used method. 24 In the profile page, users can click "See All Medicine" to view the medicine pages. To update your information on the profile page, simply click on the "Edit" button. 25 On the home page, users can view their appointments by selecting the appointment button located at the bottom of the screen. Appointments are categorized as today, upcoming, or completed. And he can cancel the upcoming appointment 26 “Search button on the homepage:” Search without using a filter: With filter: 27 Chat button on home page that will take the user to the chat page. 28 "The website which have the same features as the application." 29 30 31 Doctor Side: 32 33 Search for patient: Patient page: 34 Write precipitation for the patient: 35 Doctor appointments: "On this page, the doctor creates his schedule." 36 Admin website: 37 information for each category and controlling option: Admin can either add, or delete a category from the system Please keep in mind the following information regarding doctors and the available controlling options: Admin can either add, edit, or delete a doctor from the system. 38 Register a doctor. Chapter 5 5.1 Results and discussion Marham is a cross-platform mobile app that streamlines booking medical appointments and organizes the lives of patients and doctors. It also offers discounts to patients. 1-A cross-platform application with the mentioned services 2-A notification system to keep the user updated with any new information. 3-Reservation system that saves significant time. 39 Chapter 6 6.1 Conclusions and Recommendations In this project, we have successfully created an app that offers users easy access to many categories and doctors. The app is user-friendly, catering to all age groups and ensuring that everyone can benefit from its features. 6.2 Future work AI-driven Appointment Scheduling: Implement AI algorithms to optimize appointment scheduling, taking into account patient preferences, physician availability, and urgency of the medical condition. Provide intelligent suggestions for appointment times based on historical data and trends. Automated Prescription Renewals: Integrate a feature for automated prescription renewals, allowing patients to request medication refills directly through the app. Enable secure communication between patients and pharmacies for prescription fulfillment. Health Monitoring Integration: Integrate wearable device data (e.g., fitness trackers, smartwatches) to provide real-time health monitoring and share relevant information with healthcare providers. AI-based Symptom Checker: Develop an AI-powered symptom checker to help users assess their health conditions and provide recommendations for whether they should schedule an appointment, seek emergency care, or manage the issue at home. Multilingual Support: Implement multilingual support to ensure accessibility for a diverse user base, making it easier for individuals from different language backgrounds to use the app. 40 Chapter 7 7.1 References 1. Practo application Google Play Store 2. We got many ideas for the GUI of the application from Dribble. 3. Course on YouTube which help us in learning flutter Flutter Course. https://play.google.com/store/apps/details?id=com.practo.fabric https://dribbble.com/search/medical-application https://www.youtube.com/playlist?list=PL93xoMrxRJIvtIXjAiX15wcyNv-LOWZa9