Inspiration

We started with a simple, personal observation: while technology has made life more convenient for many, it has also created a "digital divide" that can leave our elders feeling isolated. For many seniors, the idea of navigating a complex app or website to ask for simple help is a non-starter. This project was inspired by the desire to bridge that gap. We asked ourselves: what if we could connect the compassion of community volunteers with the needs of seniors using the simplest, most familiar interface imaginable? The answer was a telephone call. Our tagline, "Dial kindness," became our guiding principle—a mission to make community support accessible to everyone.

What it does

CareShare allows seniors to simply dial a phone number and speak with a patient, intelligent AI assistant. They can describe what they need—whether it's help with groceries, a ride to a doctor's appointment, tech support, or just some companionship. Behind the scenes, our system parses the senior's request and intelligently matches them with a qualified, available volunteer in their community. It handles the complex logic of checking for specific skills, geographic proximity (zip codes), and volunteer availability. Once a match is made, the system can coordinate and confirm the appointment, creating a seamless and stress-free experience for both the senior and the volunteer.

How we built it

CareShare is a full-stack application built with a modern and robust tech stack: Voice AI: We used ElevenLabs for its powerful and lifelike conversational AI, which serves as the primary user interface for seniors. Backend: The server is built with Node.js and Express, using TypeScript for type safety. It exposes a comprehensive API for the voice agent and future web portals. Server: Azure Database for PostgreSQL flexible server Database: We used PostgreSQL hosted on Render as our database. Prisma serves as our ORM, providing a powerful and safe way to manage our schema and interact with the data. Deployment: The entire backend service and database are hosted and deployed on Render.

Challenges we ran into

This project involved overcoming several significant technical hurdles, particularly at the intersection of code, infrastructure, and third-party services: Database Migrations: Our biggest challenge was deploying the database schema. We initially faced read-only transaction errors from our production database on Render. This led us to adopt Prisma for migrations, but we then ran into a persistent P3005: The database schema is not empty error. Debugging this involved a deep dive into Git versioning issues, where we discovered our migration files were not being committed due to .gitignore rules, forcing us to manually create and force-commit the SQL migration. Infrastructure Issues: The final piece of the puzzle was discovering that the database itself was in a read-only state at the infrastructure level on Render, a common issue with free-tier services that have been inactive. This taught us a valuable lesson in debugging: sometimes the problem isn't in the code, but in the environment it runs in. ElevenLabs Dynamic Variables: We encountered an API error (Missing required dynamic variables) when trying to personalize the AI's greeting. We solved this by moving away from the standard dynamic_variables and instead using the conversation_config_override object, giving our server more direct control over the agent's behavior for each call.

Accomplishments that we're proud of

Building a Truly Accessible Interface: We successfully created a system where the primary interface is a simple phone call, making it accessible to a non-technical audience. End-to-End System Integration: We built and deployed a complete, working system that integrates a voice AI, a backend server, and a database to solve a real-world problem. Overcoming Complex Deployment Hurdles: We are incredibly proud of navigating the complex and frustrating database deployment issues. It was a difficult challenge, but we diagnosed it layer by layer and ultimately succeeded.

What we learned

Robust DevOps is Critical: This project hammered home the importance of a solid database migration strategy and a deep understanding of the deployment environment. Systematic Debugging: When faced with persistent errors, it's crucial to debug systematically, from the application code down to the infrastructure. Third-Party API Nuances: Integrating with powerful services like ElevenLabs requires carefully reading the documentation and understanding the specific ways to configure and control their behavior at runtime.

What's next for CareShare

Building out the Web Portals: Fully develop the React-based portals for administrators, seniors (for family members to help manage), and volunteers. SMS Notifications: Implement automated SMS alerts to confirm appointments and send reminders. Feedback and Rating System: Allow seniors and volunteers to provide feedback on their experience to ensure quality and build trust. Expanded Volunteer Skills: Broaden the range of skills and services volunteers can offer.

Built With

Share this project:

Updates