
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
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.
-
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.
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
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
-
-
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.
-
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.
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.
Make sure you have the latest version of npm installed
- npm
npm install npm@latest -g
- Install MongoDB : https://www.mongodb.com/docs/manual/installation/
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.
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:
-
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.
-
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.
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
-
Create a MongoDB Atlas Account:
- Go to the MongoDB Atlas website.
- Sign up or log in to your account.
-
Create a Cluster:
- Follow the instructions to create a new cluster.
-
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.
-
Clone the repo
git clone https://github.com/gouravanirudh05/HealthSync
-
Install NPM packages
npm install
-
Start the backend server
cd backend node server.js
-
Start the frontend
cd frontend npm run dev
/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.
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.
-
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.
-
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.
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.