Skip to content

gouravanirudh05/HealthSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

HeathSync

Health Project is a modern web application designed to provide an efficient and user-friendly platform for healthcare management. With features such as location-based hospital mapping, dynamic health blogs, and an integrated chatbot, this platform caters to both patients and healthcare professionals.
Explore the docs »

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License

About The Project

Project

Youtube video link: https://youtu.be/g3MGxc51N7U

This healthcare platform is a modern, scalable web application designed to provide users with an engaging and personalized healthcare management experience. The platform is built using a full-stack architecture with the latest technologies to ensure a responsive, high-performance user interface and robust backend functionality.

At its core, the platform combines React.js for dynamic frontend development, Node.js and Express.js for building fast, scalable server-side APIs, and MongoDB for a flexible and efficient database solution. It also leverages th OpenStreetMap API for geolocation-based features, enhancing user accessibility and convenience.

Key Features:

  • Dynamic Landing Page:Displays a map of nearby hospitals using device location, powered by OpenStreetMap API.

  • Dynamic Blogs: Health blogs are generated dynamically to provide up-to-date and relevant health information.

  • Chatbot Integration: Users can interact with a chatbot to discuss health-related issues.

  • User Dashboards:

    • Patient Dashboard: View appointments, profiles, and reports.
    • Doctor Dashboard: Manage appointments and patient records.
    • Admin Dashboard: Oversee platform operations and user managemen
  • Secure Login and Registration: Separate registration for patients and doctors.

  • Appointment Scheduling: Users can schedule appointments seamlessly.

  • Real-Time Data Synchronization: Leveraging MongoDB for real-time updates on patients reports and patient-doctor interactions.

  • Agora-Powered Private Video Consultations: Secure video consultations using Agora with unique meeting IDs.

Agora Integration for Secure Video Consultations:

A major challenge we faced was that Agora uses a common meeting name, allowing anyone with the name to join. To ensure privacy, we implemented a unique meeting name by combining the unique IDs of the patient and doctor. This way, each meeting is private, preventing unauthorized access

Technology Stack:

  • Frontend:

    • React.js: Dynamic and responsive user interface.
    • TailWinD CSS: simplifies styling and custom designs, making the interface visually appealing and easy to maintain.
  • Backend:

    • Node.js: A JavaScript runtime that powers the backend, enabling asynchronous, non-blocking I/O for high scalability.
    • Express.js: A minimalist web framework for Node.js, providing robust tools for creating RESTful APIs and handling HTTP requests efficiently.
  • Database:

    • MongoDB: A NoSQL database that allows for flexible, schema-less data storage, ideal for storing user profiles, progress data, and course content.
  • API:

    • OpenStreetMap API: Used to display nearby hospitals based on user location, utilizing device geolocation.
    • Gemini API: Powers the chatbot functionality, providing intelligent responses to user health-related queries.
    • NewsAPI: Fetches the latest health-related news articles dynamically for the blog section.
    • MongoDB Atlas API: Serves as the backend database for storing user data, appointments, and reports securely.
    • Browser Geolocation API: Retrieves the user's current location to enable personalized map views and proximity-based hospital listings.
    • Custom REST APIs: Built with Node.js and Express.js for managing user authentication, profile management, appointment scheduling, and report generation.

Workflow & Interaction:

  1. Sign-In/Sign-Up: Users can sign up and log in via secure authentication. Once logged in, their data, including appointments, profiles, and health records, is securely persisted across sessions.

  2. Dynamic Map on Landing Page: Upon logging in, users are greeted with a dynamic map powered by the OpenStreetMap API, which displays nearby hospitals and healthcare facilities based on their device's location.

  3. Dynamic Health Blogs: Users can access dynamically generated health blogs that provide insights into various medical topics and health tips. The content is updated regularly to keep users informed.

  4. Integrated Chatbot Assistance: The platform includes a chatbot designed to assist users with health-related queries in real time, offering a personalized and interactive experience.

  5. User Role-Based Dashboards:

    • Patients:

      • Schedule and manage appointments easily through a user-friendly interface.

      • View and download health reports directly from their dashboard.

      • Update and maintain their personal profile details.

    • Doctors:

      • Manage and track appointments efficiently.

      • Access and review patient details and reports.

      • Communicate with patients via integrated tools.

    • Admins:

      • Oversee platform operations, including user and content management.

      • Monitor overall activity and ensure smooth functioning of the system.

      • Schedule Appointments: The platform offers a seamless appointment scheduling system where users can book appointments with doctors based on availability.

  6. Real-Time Data Updates: All changes made by users (appointments, reports, or profile updates) are instantly synchronized with the backend to provide a consistent and updated user experience.

  7. Secure Video Consultations with Agora: Patients and doctors can connect privately with unique meeting IDs.

This platform combines a powerful backend with an interactive front-end to create a scalable, robust, and user-friendly healthcare solution. It has been designed to support the growing needs of patients, healthcare professionals, and administrators, ensuring a seamless experience for all.

(back to top)

Built With

  • React
  • TailwindCSS
  • Node.js
  • Express.js
  • MongoDB

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

Make sure you have the latest version of npm installed

Getting all the requried API Keys for your project:

To run this project, you need to create .env files in both the frontend and backend directories and include the respective API keys. Below are the steps to obtain the required API keys and configure them properly.

  1. Setting up the environment file in frontend:

touch .env

Inside .env add the following variables

VITE_GEMINI_API_KEY=your_gemini_api_key_here
VITE_NEWS_API_KEY=your_news_api_key_here

Steps to obtain the API keys:

  1. Gemini API key:

    • Visit Google AI studio
    • Sign up or log in to create a new API key.
    • Copy the API key and replace your_gemini_api_key_here with the key.
  2. News API Key:

    • Go to the NewsAPI website
    • Sign up or log in to your account.
    • Navigate to the API Key section and generate a key.
    • Replace your_news_api_key_here with the generated API key.
  3. Setting Up the Environment File in Backend

In the backend directory, create a .env file:

touch .env

Inside .env, add the following variable:

MONGO_URI=your_mongodb_connection_uri_here

Steps to Obtain the MongoDB Connection URI

  1. Create a MongoDB Atlas Account:

    • Go to the MongoDB Atlas website.
    • Sign up or log in to your account.
  2. Create a Cluster:

    • Follow the instructions to create a new cluster.
  3. Connect to the Cluster:

    • Under the Connect option, select Connect Your Application.
    • Copy the connection string and replace your_mongodb_connection_uri_here in the .env file.

Installation

  1. Clone the repo

    git clone https://github.com/gouravanirudh05/HealthSync
  2. Install NPM packages

    npm install
  3. Start the backend server

    cd backend
    node server.js
  4. Start the frontend

    cd frontend
    npm run dev

Routes

  • /news: Displays the health blog section.
  • /blog: Dynamic blog section for health-related posts.
  • /hero: Hero component of the landing page.
  • /about: Information about the platform.
  • /login: User login page.
  • /patient-dashboard: Dashboard for patients to view appointments, profiles, and reports.
  • /profile: Profile management for users.
  • /doctor-dashboard: Dashboard for doctors to manage appointments and patients.
  • /admin-dashboard: Dashboard for administrators to oversee the platform.
  • /schedule-appointment: Appointment form for detailed scheduling.
  • /register-patient: Registration page for new patients.
  • /register-doctor: Registration page for new doctors.
  • /reports: Page to access and view health reports.

Usage

Landing Page

The landing page features a dynamic map displaying nearby hospitals, utilizing device location through the OpenStreetMap API. This provides users with quick access to nearby healthcare facilities.

  1. Blog and Chatbot

  • Blogs: Health blogs are dynamically generated, offering insights and updates on various health topics.

  • Chatbot: Integrated chatbot assists users in resolving health-related queries in real time.

  1. User Interaction

  • Patients: View and manage appointments, access reports, and update profiles.

  • Doctors: Manage patient appointments and access relevant patient information.

  • Admins: Oversee platform operations, including user management and content updates.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Top contributors:

contrib.rocks image

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

About

This project secured 5th place out of 136 teams in the IIT Ropar Hackathon

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages