WellTogether: Healing Together, Mind, Body, and Soul
Inspiration
Hospitalization can be an isolating experience, often taking a toll on both mental and emotional well-being. While hospitals focus on treating physical ailments, mental health is often overlooked. Many patients struggle with loneliness, anxiety, and depression, lacking meaningful social interaction during their stay.
We were inspired by countless patient stories and the need for a platform that fosters connection, support, and emotional resilience during hospitalization. WellTogether was created to bridge this gap—ensuring that no patient feels alone in their journey to recovery.
What It Does
WellTogether is a tablet-based platform designed to support hospitalized patients' mental well-being. It provides:
- 🌍 Chat Rooms – Connect with other patients for support.
- 🤖 AI-Powered Emotional Support – Get guidance and motivation from AI-driven responses.
- 📝 Journaling – Express emotions and track recovery progress.
- 🎮 Games – Engage in multiplayer games for relaxation and social interaction.
- 🎥 Virtual Watch Parties – Enjoy movies and entertainment with others in real time.
- 🎙️ Voice Calls – Speak with fellow patients and caregivers for real-time emotional support.
By integrating these features, WellTogether promotes holistic healing—addressing both mental and emotional health in hospitals.
How We Built It
Project Setup
- Initialized a Next.js 13 project using the
app/directory. - Integrated Material UI for modern UI components.
- Configured Firebase Firestore for real-time chat and voice communication.
Chat Implementation
- Created
firebaseService.jsto handle Firestore interactions. - Stored messages in Firestore subcollections (e.g.,
chatGroups/{group}/messages). - Subscribed to messages in
page.jsusingonSnapshot()for real-time updates. - Styled messages using Material UI (
MessageList,MessageBubble).
User Presence Tracking
- Tracked active users in Firestore (
voiceActivefield). - Queried users where
voiceActive == truefor real-time updates. - Updated presence status when users joined or left the voice channel.
Challenges We Ran Into
🔧 Path & Module Resolution
- Faced build errors due to incorrect imports (
firebase.js,firebaseService.js). - Had to carefully match Next.js 13 folder structure.
🔧 Real-Time Updates & Race Conditions
- Firestore read/write race conditions led to duplicate or missing call data.
- Implemented state checks (
remoteDescription,localDescription) to prevent desynchronization.
🔧 Scaling & Production Readiness
- Ensuring multiple users could join, leave, and reconnect dynamically.
- Managing Firestore document cleanup to prevent data overload.
Accomplishments That We're Proud Of
✅ Seamless Real-Time Communication – Successfully built a chat and voice platform with WebRTC & Firebase.
✅ Holistic Mental Health Support – Integrated AI support, journaling, and watch parties for emotional well-being.
✅ Responsive & User-Friendly UI – Designed a modern, intuitive interface using Material UI.
✅ Cross-Team Collaboration – Overcame technical challenges through teamwork and problem-solving.
What We Learned
💡 WebRTC Fundamentals
💡 Real-Time Firestore Integration – Mastered data synchronization with Firestore listeners.
💡 Material UI for Scalable UI – Leveraged Material UI components for a clean and user-friendly experience.
💡 Next.js 13 Best Practices – Built a structured file-based routing system with Next.js.
What's Next for WellTogether
🚀 Video Call Integration – Add secure peer-to-peer video calling for face-to-face patient interaction.
🚀 Expanded Game Library – Introduce new multiplayer games for patient engagement.
🚀 Doctor & Caregiver Integration – Enable direct doctor-patient communication via WellTogether.
🚀 Mobile App Version ** – Develop a **mobile-friendly version for extended access beyond hospitals.
🚀 Rehab Community ** – Develop a **mobile-friendly app to help with Rehab facilities.
💜 WellTogether: Because No One Should Heal Alone.
Built With
- figma
- firebase
- javascript
- jsx
- material
- next.js
- react
- ui
- vercel
- webrtc
Log in or sign up for Devpost to join the conversation.