Skip to content

A comprehensive healthcare platform that caters to the needs of patients, doctors, and administrators. The platform's primary goal is to facilitate seamless interactions, streamline medical processes, and enhance the overall healthcare experience for users.

Notifications You must be signed in to change notification settings

advanced-computer-lab-2023/Ragel-w-6-setat-Clinic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 

Repository files navigation

Health Space (Virtual Clinic)

App Screenshot

The aim of this project is to design and implement a comprehensive healthcare platform that caters to the needs of patients, doctors, and administrators. The platform's primary goal is to facilitate seamless interactions, streamline medical processes, and enhance the overall healthcare experience for users. The platform will be feature-rich, accommodating a wide array of functionalities, and will be developed iteratively across multiple sprints.

Motivation

The motivation behind developing a comprehensive healthcare platform stems from addressing several challenges and opportunities within the healthcare industry. Here are some key motivations for undertaking such a project:

1. Enhanced Patient Care:

  • Improve patient care by providing a centralized platform for managing medical records, prescriptions, and appointments.
  • Facilitate easy communication between patients and healthcare providers for better follow-up care.

2. Efficiency and Streamlining Processes:

  • Streamline administrative processes for healthcare providers, reducing paperwork and administrative overhead.
  • Optimize appointment scheduling, prescription management, and document handling for increased efficiency.

3. Improved Accessibility:

  • Increase accessibility to healthcare services, especially in remote or underserved areas, through telemedicine features like video consultations.

4. Collaboration and Coordination:

  • Enhance collaboration among healthcare professionals by providing a platform for easy communication and sharing of relevant patient information.

5. Patient Empowerment:

  • Empower patients to actively manage their health by providing tools for tracking medical history, accessing health packages, and scheduling appointments.

Objectives

  • Agile Methodology: Utilize Agile methodology effectively for project planning and software development.

  • System Requirements: Demonstrate proficiency in implementing a given set of system requirements to develop software.

  • MERN Stack Mastery: Research and master the use of the MERN Stack, understanding its intricacies and functionalities.

  • Collaboration via GitHub: Develop teamwork skills by collaborating on GitHub, ensuring effective version control and collaborative development.

  • Project Management & Feedback: Engage with project management practices and feedback sessions to iteratively improve the project.

As a requirement for our ACL course at GUC, this project allowed us to delve into and implement the MERN Stack. It provided a valuable opportunity to critically think about and execute a fully functional website, offering insights into our future career paths.

Build Status

The project is currently in the development stage, progressing through milestones with continuous improvements in code implementation and execution. Notable learning curves were experienced during milestones 2 and 3, particularly in the areas of authentication and user login.

Challenges Faced

One prominent issue encountered was the slowness in fetching data from the backend to the frontend. Despite this challenge, the frontend functionality remains robust, albeit with some organizational improvements needed.

Future Considerations

Looking ahead, the project will require deployment, likely through platforms such as Google Cloud or similar services, to ensure accessibility and scalability in the near future.

Code Styles:

  • Prettier: Automatic code formatter that ensures uniform formatting across the entire project before each commit.

  • Consistent Coding Style: The project maintains a specific code style for readability and consistency, essential for collaboration and maintenance.

  • Standart Code Style Guide: Adherence to the Standart Code Style Guide ensures uniformity across the codebase. Contributors are encouraged to review the guide for code alignment.

  • Consistent Formatting: Proper indentation and consistent formatting enhance code readability and comprehension.

  • Descriptive Variable Names: Variables like fromDateReschedule, followUpDate, linkedFamilyMembers, toggleAppointmentModal, etc., use descriptive names to convey their purpose.

  • Destructuring: Utilization of destructuring for props like user from UserContext enhances code readability.

  • Async/Await: The use of async/await syntax for handling asynchronous operations improves code readability and manages promises effectively.

  • React Component Structure: Functional components with React hooks (useState, useEffect) manage state and side effects efficiently.

  • Conditional Rendering: Modals (Modal isOpen={modalStates[index]}) and button disabling/enabling based on appointment status use conditional rendering.

  • Consistent Styling: Consistency in inline styling and class names throughout the component simplifies maintenance and styling.

  • Error Handling: Error handling blocks (try...catch) manage potential errors during API requests (axios calls).

  • Comments: Code includes comments to explain certain blocks or functionalities, aiding future reference and understanding.

  • Event Handling: Consistent event handling, such as onClick events on buttons invoking corresponding functions (handleReschedule, handleFollowUp, handleCancel).

Screenshots

Ss

Ss

further documentation :

(https://drive.google.com/drive/folders/1HfreTuMMeXtqHv4OUfgK04wQMY8--XyO?usp=drive_link))

Tech/Framework used

  • MERN Stack (MongoDB, Express.js, React.js, Node.js)
  • JavaScript
  • Postman

Key Features

1. User Authentication

  • Secure Authentication: Ensures secure login for both doctors and patients.
  • Separate Login Portals: Dedicated login portals designed for doctors and patients.

2. Doctor Profiles

  • Detailed Information: Includes comprehensive details like name, specialty, qualifications, and contact information.
  • Profile Picture Upload: Provides an option for doctors to upload their profile pictures.

3. Patient Profiles

  • Basic Information: Stores basic patient information along with their medical history.
  • Secure Health Record Storage: Safely stores and manages patient health records.

4. Appointment Scheduling

  • User-Friendly System: Easy-to-use appointment scheduling system, primarily designed for patients.
  • Doctor Availability Calendar: Shows doctors' availability with convenient time slots for appointments.
  • Confirmation and Reminder Notifications: Sends notifications for both doctors and patients for appointment updates.

5. Prescription Management

  • Electronic Prescriptions: Enables doctors to generate and manage electronic prescriptions.
  • Prescription History: Patients have access to their prescription history through their profiles.
  • Direct Prescription Sending: Option for doctors to send prescriptions directly to pharmacies.

6. Medical Records and History

  • Centralized Storage: Stores patient medical records and treatment history centrally.
  • Secure Access Control: Implements secure access control to protect patient confidentiality.

7. Notifications and Reminders

  • Automated Appointment Reminders: Sends automated appointment reminders to patients.
  • Doctor Notifications: Notifies doctors about upcoming appointments.

8. Search and Filter Options

  • Patient Search Functionality: Enables patients to search for doctors based on specialty, location, etc.
  • Doctor Filters: Allows doctors to manage appointment types and availability through filters.

9. Real-Time Video Consultations

  • Integration of Video Call Feature: Enables real-time video calls for virtual consultations between patients and doctors.

10. Real-Time Chat System

  • Implementation of Messaging System: Enables instant communication between patients and doctors through a real-time messaging system.

Code Examples

Video chat API between doctor and patient, doctor is waiting in the room for patient Ss

The patient uses a family member through their email to link with them Ss

further documentation

(https://drive.google.com/drive/folders/1HfreTuMMeXtqHv4OUfgK04wQMY8--XyO?usp=drive_link)

Installation

These instructions will help you get a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

  1. Click on code -> Download ZIP

  2. Extract the zip file and open it in visual studio code.

  3. Navigate to the server folder using the terminal and run the following command:

     npm install
    
  4. Next, navigate to the client folder in the terminal and run the following command:

     npm install
    

How To Use

To launch the project locally, follow these steps:

Navigate to the server folder using the terminal and run the following command:

    npm start

Next, navigate to the client folder in the terminal and run the following command:

    npm start

API References

1. Express.js(express)

  • Description: Web application framework for Node.js, used for building the backend server and handling HTTP requests.
  • Documentation: Express.js Documentation

2. Mongoose(mongoose)

  • Description: Elegant Object Data Modeling (ODM) library for MongoDB and Node.js, streamlining interaction with MongoDB.
  • Documentation: Mongoose Documentation

3. Axios(axios)

  • Description: Promise-based HTTP client for making HTTP requests, facilitating seamless communication with external APIs.
  • Documentation: Axios Documentation

4. Bcrypt(bcrypt)

  • Description: Library for hashing and salting passwords, fortifying the project's password security.
  • Documentation: Bcrypt Documentation

5. Cors(cors)

  • Description: Middleware for Express.js enabling Cross-Origin Resource Sharing (CORS), granting controlled access to server resources.
  • Documentation: Cors Documentation

6. Dotenv(dotenv)

  • Description: Zero-dependency module seamlessly loading environment variables from a .env file into process.env.
  • Documentation: Dotenv Documentation

7. Jsonwebtokens(jsonwebtoken)

  • Description: Robust library for creating and verifying JSON Web Tokens (JWT), a cornerstone for user authentication.
  • Documentation: Jsonwebtoken Documentation

8. Morgan(morgan)

  • Description: Express.js middleware providing an HTTP request logger, capturing essential information about incoming requests.
  • Documentation: Morgan Documentation

9. Multer(multer)

  • Description: Middleware tailored for handling multipart/form-data, an essential tool for efficient file uploads.
  • Documentation: Multer Documentation

10. Nodemailer(nodemailer)

  • Description: Powerful module for sending emails, often utilized for tasks like dispatching confirmation emails.
  • Documentation: Nodemailer Documentation

11. Nodemon(nodemon)

  • Description: Intelligent utility monitoring changes in source code and autonomously restarting the server.
  • Documentation: Nodemon Documentation

12. Socket.io(^4.7.2)

  • Description: Real-time bidirectional event-based communication library for Node.js. Facilitates real-time communication between web clients and servers.
  • Documentation: Socket.IO Documentation

13. Stripe(@stripe/stripe-js and stripe)

For detailed information and usage instructions, refer to the official documentation linked above for each API.

Tests

To ensure the proper functioning of this project, you can perform various tests using tools like Postman. Below are some examples demonstrating how to test different aspects of the code.

Prerequisites

  • Before running the tests, make sure you have Postman installed on your machine.

delete medicine route testing Ss

doctor (getMyPatients) route testing Ss

as a patient (linkFamilyMember) route testing Ss

Contribute

We welcome contributions from the community! If you'd like to contribute to the development of this project, follow these guidelines:

  1. Fork the Repository: Click on the "Fork" button on the top right corner of this repository's page.

  2. Clone the Repository: Clone the forked repository to your local machine using the following terminal command:

     git clone https://github.com/your-username/your-forked-repo.git
    
  3. Create a Branch: Create a new branch for your contributions:

     git checkout -b feature/your-feature-name
    
  4. Make Changes: Make your desired changes to the codebase.

  5. Commit Changes: Commit your changes with a meaningful commit message:

     git commit -m "Add your meaningful commit message here"
    
  6. Push Changes: Push your changes to your forked repository:

     git push origin feature/your-feature-name
    
  7. Create a Pull Request (PR): Open a Pull Request against the main branch of the original repository. Provide a clear title and description for your changes.

  8. Code Review: Participate in the code review process. Make any requested changes if needed.

  9. Merge: Once your changes are approved, they will be merged into the main branch.

Thank you for contributing to our project! 🚀

to run the backend : npm start

Credits

License

This project is licensed under the MIT License & Apache License

About

A comprehensive healthcare platform that caters to the needs of patients, doctors, and administrators. The platform's primary goal is to facilitate seamless interactions, streamline medical processes, and enhance the overall healthcare experience for users.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •