- 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).
Click to expand
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.
In the fast-moving, high-stakes world of hospitals, efficient communication is essential. However, traditional means of communication have certain limitations:
- Traditional Pagers: While reliable and capable of penetrating thick hospital walls, they have limited functionality and only allow for one-way communication.
- Cell Phones: Cell phones are frequently unreliable in hospital settings due to poor reception and network congestion during emergency situations.
- 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.
The Medical Pager Chat App responds to these issues by:
- Reliable Infrastructure: Using robust messaging systems to ensure communication even in locations with low cell coverage.
- Advanced Functionality: Provides two-way communication with features such as direct and group conversations, multimedia sharing, and threaded replies.
- Emergency-Ready: Prioritise sending messages in critically important situations to verified personnels, same as traditional pager systems does.
- Unified Platform: Offers a single, standardised communication tool that can be utilised among various hospital departments.
- Always Connected: Using SMS notifications to notify verified users of vital messages when offline.
- 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.
- 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.
- 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...
- 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)
- Stream API (for real-time messaging)
- Twilio API (for SMS services)
- Google Analytics (for user interaction tracking)
-
If you encounter any errors during sign-in or sign-up, please refresh the page and try again.
-
When setting up your profile, you need to provide a URL for your avatar (profile picture).
-
To use GIFs in your messages, type
/giphy [keyword]
(e.g.,/giphy hello
to find a "hello" GIF). -
To mention a specific user in a chat, type
@username
. -
You need to have an account with Twilio for SMS messaging.
-
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.
-
For more information, access the full project demo video on Google Drive here.
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
- Users cannot leave or be removed from chats they were automatically added to. For example:
-
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.
-
Clone the repository:
git clone https://github.com/yourusername/medical-pager.git cd medical-pager/client
-
Install dependencies:
npm install
-
Start the development server:
npm start
can also refer client's README.md file for more details.
-
Navigate to the server directory:
cd ../server
-
Install dependencies:
npm install
-
Set up environment variables: Open the
client/src/App.js
andclient/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 theserver
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. -
Start the backend server:
npm start npm run dev
We welcome contributions to improve MedicalPager! Here's how you can contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/AmazingFeature
- Commit your changes and push to the branch:
git commit -m 'Add some AmazingFeature' git push origin feature/AmazingFeature
- Open a Pull Request with a detailed description of your changes.
- Voila ❗ You have made a PR to this awesome projects💥. Wait for your submission to be accepted and your PR to be merged.
This project is licensed under the MIT License - see the LICENSE file for details.
Quite a lot of the code in this repo came from GetStream.