Skip to content

Think of a chat applications created mainly for hospitals and healthcare professionals that is just as reliable as a pager but has the features of a modern chat platform. That's MedicalPager!!!

License

Notifications You must be signed in to change notification settings

siddheshshende/medical-pager-chat-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Medical Pager Chat App Logo

Medical Pager
A Secure Chat App for Busy Hospitals

Badge Badge Badge Badge Badge Badge

Tech Stack and tools:

  • Frontend: HTML,Css,JavaScript,React.
  • Backend: Node.js,Express.
  • Real-time Messaging: Stream API.
  • SMS Notifications: Twilio.
  • Version Control: Git and GitHub.
  • Hosting: Netlify(frontend) and Render(backend).
  • Code Editor: VS Code.
  • Analytics: Google Analytics.
  • CSS Methodology: BEM (Block Element Modifier).

✨ Welcome to Medical-Pager ✨


Table of Contents

Click to expand

Overview🔨

Think of a chat applications created mainly for hospitals and healthcare professionals that is just as reliable as a pager but has the features of a modern chat platform. That's MedicalPager!!. It allows doctors and medical personnel to remain connected and up to date with their hospital divisions, which results in seamless communication and better patient care.

Problem and Solution

The Problem🆘

In the fast-moving, high-stakes world of hospitals, efficient communication is essential. However, traditional means of communication have certain limitations:

  1. Traditional Pagers: While reliable and capable of penetrating thick hospital walls, they have limited functionality and only allow for one-way communication.
  2. Cell Phones: Cell phones are frequently unreliable in hospital settings due to poor reception and network congestion during emergency situations.
  3. Multiple Systems: Using several communication technologies results in disorganised data and possibly miscommunication.

Healthcare personnel want a platform that combines the dependability of pagers with the capability of current communication apps, all while responding to the specific needs of the medical field.

Our Solution

The Medical Pager Chat App responds to these issues by:

  1. Reliable Infrastructure: Using robust messaging systems to ensure communication even in locations with low cell coverage.
  2. Advanced Functionality: Provides two-way communication with features such as direct and group conversations, multimedia sharing, and threaded replies.
  3. Emergency-Ready: Prioritise sending messages in critically important situations to verified personnels, same as traditional pager systems does.
  4. Unified Platform: Offers a single, standardised communication tool that can be utilised among various hospital departments.
  5. Always Connected: Using SMS notifications to notify verified users of vital messages when offline.
  6. User Friendly Design: Featuring a straightforward UI that is simple to understand and apply, even in high-pressure situations.

Our Medical Pager Chat App combines the features of traditional pagers and current chat applications to deliver a complete, dependable, and effective communication solution for healthcare professionals, eventually improving patient care and the operation of hospitals.

Medical Pager dashboard

"Chat interface" "Chat interface with mentions"

Key Features:

  • Authentication with secure user management.
  • Direct and group chat functionality.
  • Multimedia support (GIFs, photos, YouTube embeds)
  • YouTube video playback within the chat.
  • Message editing and deletion.
  • Threaded replies for structured conversations.
  • Giphy integration via the `/giphy' command.
  • search functionality for channels and users.
  • Fully responsive design for all devices.
  • Twilio for real-time SMS notifications.
  • Upload local files directly into the chat.
  • Mentions (hey @you) to mention specific users.
  • Webhooks for event-driven notifications and integrations.

Advanced Concepts Implemented🧠

  • Efficient folder and file structure
  • React Context API for state management
  • Integration with Stream API for scalable chat infrastructure
  • Custom hooks for reusable logic and many more...

(back to top)

Dependencies used🖥️

  • React(you know,why it is used😄)
  • Stream Chat React (for chat functionality)
  • Universal Cookie (for cookie management)
  • Axios (for API calls)
  • Stream Chat (for chat infrastructure)
  • Express (web application framework)
  • Twilio (for SMS notifications)
  • bcrypt (for password hashing)
  • cors (for enabling CORS)
  • dotenv (for environment variable management)
  • crypto (for cryptographic functionality)
  • nodemon (for auto-restarting the server during development)

API & Services

  • Stream API (for real-time messaging)
  • Twilio API (for SMS services)
  • Google Analytics (for user interaction tracking)

Usage Notes

  1. If you encounter any errors during sign-in or sign-up, please refresh the page and try again.

  2. When setting up your profile, you need to provide a URL for your avatar (profile picture).

  3. To use GIFs in your messages, type /giphy [keyword] (e.g., /giphy hello to find a "hello" GIF).

  4. To mention a specific user in a chat, type @username.

  5. You need to have an account with Twilio for SMS messaging.

  6. The project code includes various comments which clarify functionality and increase readability. These comments can be useful for understanding the code's structure and logic.

  7. For more information, access the full project demo video on Google Drive here.

    (back to top)

Security and User Management

We've implemented strict rules for managing members/users across all types of chats in Medical Pager to ensure security and proper access control:

  • Automatic Memberships:

    • Users cannot leave or be removed from chats they were automatically added to. For example:
      • Doctors cannot leave or be removed from their hospital's general chat
      • Department heads cannot leave or be removed from their department's chat
  • Private Conversations:

    • Members cannot leave or be removed from their private conversations (DMs)
  • Administrative Control:

    • Hospital administrators have the highest level of control and can manage most user access, with some exceptions
  • Department-Specific:

    • Department members cannot leave or be removed from their department's dedicated chat
  • Patient-Related Chats:

    • The primary physician cannot leave or be removed from their patient's case discussion
    • Assigned nurses cannot leave or be removed from their patients' care coordination chats
  • Administrative Powers:

    • Hospital administrators can remove any regular user from any chat, except where noted above

These rules are designed to maintain the integrity of communication channels, ensure that critical information reaches the right people and prevent accidental or unauthorized removal of essential personnel from important conversations.

(back to top)

Installation

Frontend setup:

  1. Clone the repository:

    git clone https://github.com/yourusername/medical-pager.git
    cd medical-pager/client
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm start

can also refer client's README.md file for more details.

Backend setup:

  1. Navigate to the server directory:

    cd ../server
  2. Install dependencies:

    npm install
  3. Set up environment variables: Open the client/src/App.js and client/src/Components/Auth.js files and replace the placeholders with your actual API keys and tokens: Create a .env file in the root directory of the server folder and add the following variables:

     STREAM_APP_ID=your_stream_app_id
    STREAM_API_SECRET=your_stream_api_secret
    STREAM_API_KEY=your_stream_api_key
    TWILIO_ACCOUNT_SID=your_twilio_account_sid
    TWILIO_AUTH_TOKEN=your_twilio_auth_token
    TWILIO_MESSAGING_SERVICE_SID=your_twilio_messaging_service_sid
    

    Replace your_* with your actual API keys and tokens.

  4. Start the backend server:

    npm start
    npm run dev

(back to top)

Contributing🤝

We welcome contributions to improve MedicalPager! Here's how you can contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature/AmazingFeature
  3. Commit your changes and push to the branch:
    git commit -m 'Add some AmazingFeature'
    git push origin feature/AmazingFeature
  4. Open a Pull Request with a detailed description of your changes.
  5. Voila ❗ You have made a PR to this awesome projects💥. Wait for your submission to be accepted and your PR to be merged.

(back to top)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

Quite a lot of the code in this repo came from GetStream.

(back to top)


Made with ❤️ for healthcare professionals

About

Think of a chat applications created mainly for hospitals and healthcare professionals that is just as reliable as a pager but has the features of a modern chat platform. That's MedicalPager!!!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published