Project Info
Echocare TABLE NUMBER 100
Inspiration
In the U.S. and S.F., homelessness continues to be a persistent issue, affecting more than 650,000 individuals in 2023 alone. Despite the lack of stable housing, many people experiencing homelessness own mobile phones. Research indicates that as many as 94% of homeless individuals have access to a cellphone, with around 70% having smartphones. This is crucial because phones act as a lifeline for communication, health services, and access to support networks. Phones help users connect with essential services like medical care, job opportunities, and safety alerts. Unfortunately, barriers such as maintaining a charge or affording phone plans remain common issues for this population. In addition, U.S. faces a huge problem of food wastage. 150,000 tonnes of food are wasted each year JUST in SF. With Echocare, we aim to kill these 2 problems with 1 stone. We leverage S.O.T.A Artificial Intelligence to provide essential services to homeless and people suffering from food insecurity in a more accessible and intuitive manner. Additionally, we allow restaurants to donate and keep track of leftover food using an inventory tracker which can be used to feed the homeless people.
What it does
Echocare is an intuitive platform designed to assist users in locating and connecting with nearby care services, such as medical centers, pharmacies, or home care providers. The application uses voice input, interactive maps, and real-time search functionalities to help users find the services they need quickly and seamlessly. With user-friendly navigation and smart recommendations, Echocare empowers people to get help with minimal effort. In addition, it offers a separate platform for restaurants to keep track of leftover food and donate them at the end of each business day to homeless people.
How we built it
Next.js for server-side rendering and static generation. React to build interactive and modular UI components for the front end. TypeScript for type safety and a robust backend. Tailwind CSS for rapid, utility-first styling of the application. Framer Motion for smooth and declarative animations. GSAP (GreenSock Animation Platform) for high-performance animations. (Used for Echo) Three.js for creating 3D graphics in the browser, adding depth and interactivity. (Echo has 3d graphics built in it) Vercel Postgres to communicate with Neon DB (Serverless Postgres) Neon Database a serverless PostgreSQL option, for robust backend storage to store the donated food items of the restaurants. Uses minimal compute and is good for developing low-latency applications Clerk to implement secure and seamless user authentication for managers of the restaurants who want to donate food. Google Maps API to power the mapping functionality and location services (This was embedded with Echo to provide precise directions). Google Places API for autocomplete suggestions and retrieving detailed place information. Ant Design and Aceternity UI for building the forms in the food donation page and having a clean look for the landing page (inspired by the multicolored and vibrant lights of SF in the night) Axios for making API requests to external services easily (Google Maps and Places API) Lucide React for all of the icons used in the application. Vapi.ai For creating the one and only assistant Google Gemini Flash 1.5 to potentially assist with generating user-facing responses. Groq 3.1 70b versatile (fine-tuned) to assist Vapi.ai with insights. Cartesia to provide hyper-realistic service for users. Deepgram for encoding
Challenges we ran into
We found it very difficult to transcribe the conversations between the user and Vapi.ai echo agent. Rishit had to code for 16 hours straight to get it working. We also found the Google Gemini Integration to be hard because the multimodal functionality wasn't easy to implement. Especially with Typescript which isn't well documented as compared to Python. Finally, stitching the backend and frontend together in the food donation page also took a lot of time to carry out.
Accomplishments we're proud of
Getting 4 sponsored tools to be seamlessly integrated in the application Using a grand total of 18 tools to build Echocare from the ground up Finishing the entire product 10 hours before the deadline Creating a product which can truly be used to help burdened communities thrive Having a lot of fun and enjoying the process of building Echocare!
What we learned
Typescript - We have never used it to build a project before and through this hackathon, we gained understanding of how we can use it to build cohesive applications Vapi.AI - Using the dashboard and integrating custom APIs into Vapi was a tricky operation, but we toughed it out and made it work. NeonDB - We used this DB and learned basic SQL queries to insert and get data from the DB which we used to setup the donation page. Google Maps/Places API - Although they were relatively easy to implement, some time had to spent to initialize them. Groq, Cartesia - They were definitely tricky to implement with Vapi's dashboard. Gemini Integration with TS - Although it was < 100 lines of code, we kept running into errors. Turned out that Gemini Pro Vision was deprecated and we had to use Gemini 1.5 Flash instead ;(
What's next
We would like to train our VAPI RAG with more datasets from other cities in the United States. Also, we would like to improve the responsive dimensions of our website.
Inspiration
In the U.S. and S.F., homelessness continues to be a persistent issue, affecting more than 650,000 individuals in 2023 alone. Despite the lack of stable housing, many people experiencing homelessness own mobile phones. Research indicates that as many as 94% of homeless individuals have access to a cellphone, with around 70% having smartphones. This is crucial because phones act as a lifeline for communication, health services, and access to support networks. Phones help users connect with essential services like medical care, job opportunities, and safety alerts. Unfortunately, barriers such as maintaining a charge or affording phone plans remain common issues for this population.
In addition, U.S. faces a huge problem of food wastage. 150,000 tonnes of food are wasted each year JUST in SF.
With Echocare, we aim to kill these 2 problems with 1 stone. We leverage S.O.T.A Artificial Intelligence to provide essential services to homeless people in a more accessible and intuitive manner. Additionally, we allow restaurants to donate and keep track of leftover food using an inventory tracker which can be used to feed the homeless people.
What it Does
Echocare is an intuitive platform designed to assist users in locating and connecting with nearby care services, such as medical centers, pharmacies, or home care providers. The application uses voice input, interactive maps, and real-time search functionalities to help users find the services they need quickly and seamlessly. With user-friendly navigation and smart recommendations, Echocare empowers people to get help with minimal effort. In addition, it offers a separate platform for restaurants to keep track of leftover food and donate them at the end of each business day to homeless people.
How We Built It
- Next.js for server-side rendering and static generation.
- React to build interactive and modular UI components for the front end.
- TypeScript for type safety and a robust backend.
- Tailwind CSS for rapid, utility-first styling of the application.
- Framer Motion for smooth and declarative animations.
- GSAP (GreenSock Animation Platform) for high-performance animations. (Used for Echo)
- Three.js for creating 3D graphics in the browser, adding depth and interactivity. (Echo has 3d graphics built in it)
- Vercel Postgres to communicate with Neon DB (Serverless Postgres)
- Neon Database a serverless PostgreSQL option, for robust backend storage to store the donated food items of the restaurants. Uses minimal compute and is good for developing low-latency applications
- Clerk to implement secure and seamless user authentication for managers of the restaurants who want to donate food.
- Google Maps API to power the mapping functionality and location services (This was embedded with Echo to provide precise directions).
- Google Places API for autocomplete suggestions and retrieving detailed place information.
- Ant Design, Aceternity UI for building the forms in the food donation page and having a clean look for the landing page (inspired by the multicolored and vibrant lights of SF in the night)
- Axios for making API requests to external services easily (Google Maps and Places API)
- Lucide React for all of the icons used in the application.
- Vapi.ai For creating the one and only assistant
- Google Gemini Flash 1.5 to potentially assist with generating user-facing responses.
- Groq 3.1 70b versatile (fine-tuned) to assist Vapi.ai with insights.
- Cartesia to provide hyper-realistic service for users.
Challenges We Ran Into
We found it very difficult to transcribe the conversations between the user and Vapi.ai echo agent. Rishit had to code for 16 hours straight to get it working. We also found the Google Gemini Integration to be hard because the multimodal functionality wasn't easy to implement. Especially with Typescript which isn't well documented as compared to Python. Finally, stitching the backend and frontend together in the food donation page also took a lot of time to carry out.
Accomplishments We Are Proud Of
- Getting 4 sponsored tools to be seamlessly integrated in the application
- Using a grand total of 18 tools to build Echocare from the ground up
- Finishing the entire product 10 hours before the deadline
- Creating a product which can truly be used to help burdened communities thrive
- Having a lot of fun and enjoying the process of building Echocare!
What We Learned
- Typescript - We have never used it to build a project before and through this hackathon, we gained understanding of how we can use it to build cohesive applications
- Vapi.AI - Using the dashboard and integrating custom APIs into Vapi was a tricky operation, but we toughed it out and made it work.
- NeonDB - We used this DB and learned basic SQL queries to insert and get data from the DB which we used to setup the donation page.
- Google Maps/Places API - Although they were relatively easy to implement, some time had to spent to initialize them.
- Groq, Cartesia - They were definitely tricky to implement with Vapi's dashboard.
- Gemini Integration with TS - Although it was < 100 lines of code, we kept running into errors. Turned out that Gemini Pro Vision was disabled and we had to use Gemini 1.5 Flash instead ;(
Contributors
- Rishit Das
- Sujash Barman
Analysis
View
Metric
- 17
- 13
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- Google GeminiIn code
- JavaScriptIn code
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
7 of 7 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
70 KB
Source files
23
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
rishitx/echocare
34 files · 415 KB · @ 816109c
Structure
Interface
18 files · 53%Screens, components and styles rendered to the user.
Application logic
1 file · 3%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript89%
- Markdown10%
- CSS1%
- JavaScript0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
echocare/package.json
npm · 30- @clerk/nextjs
- @google/generative-ai
- @googlemaps/js-api-loader
- @neondatabase/serverless
- @radix-ui/react-avatar
- @react-google-maps/api
- @vapi-ai/web
- @vercel/postgres
- antd
- axios
- clsx
- cors
- dotenv
- framer-motion
- gsap
- lib-utils-ts
- lucide-react
- +12 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Ant Design donation form UIVerified
Ant Design used for building the forms in the food donation page
Claimed on readmehigh confidenceechocare/app/components/form.tsx:2— Uses antd Form, Input, Select, Upload components to build the donation formechocare/package.json:20— antd listed as a dependency
Axios for external API requestsVerified
Axios used for making API requests to Google Maps and Places
Claimed on readmehigh confidenceechocare/app/hooks/use-vapi.ts:130— axios.get used for Places findplacefromtext, Directions API, and Geocoding API calls
Clerk authentication for restaurant managersVerified
Clerk implements secure authentication for restaurant managers donating food
Claimed on readmehigh confidenceechocare/app/providers.tsx:3— App wrapped in ClerkProviderechocare/app/businesspage_side/page.tsx:8— useUser() from @clerk/nextjs gates the donation page UI
Framer Motion animationsVerified
Framer Motion used for smooth declarative animations
Claimed on readmehigh confidenceechocare/app/components/Transcriber.tsx:4— motion.span used to animate transcript words with blur/opacity transitions
Google Gemini food safety image analysisVerified
Google Gemini Flash 1.5 assists with generating user-facing responses
Claimed on readmehigh confidenceechocare/app/components/gemini-food-vision.tsx:41— Calls genAI.getGenerativeModel({model: 'gemini-1.5-flash'}) to analyze an uploaded food imageechocare/app/landing_page/landing_page.tsx:121— identifyFoodSafety(file) is invoked from the landing page UI and result displayed
Google Places autocomplete searchVerified
Google Places API for autocomplete suggestions and place details
Claimed on readmehigh confidenceechocare/app/landing_page/landing_page.tsx:264— Autocomplete component wired with onLoad/onPlaceChanged handlersechocare/app/hooks/use-vapi.ts:223— findNearbyPlaces calls the Places 'searchNearby' REST endpoint
GSAP animationsVerified
GSAP used for high-performance animations (used for Echo)
Claimed on readmemedium confidenceechocare/app/components/glob.tsx:5— gsap imported in the AbstractBall 3D component
Interactive Google Maps integrationVerified
Google Maps API powers mapping functionality and location services
Claimed on readmehigh confidenceechocare/app/landing_page/landing_page.tsx:14— Imports GoogleMap, LoadScriptNext, Marker from @react-google-maps/api and renders a GoogleMap component with an API key
Lucide React iconsVerified
Lucide React used for all icons in the application
Claimed on readmehigh confidenceechocare/app/landing_page/landing_page.tsx:7— Imports MicIcon and PhoneOff from lucide-react and uses them in the mic button
Next.js / React / TypeScript / Tailwind stackVerified
Built with Next.js, React, TypeScript, and Tailwind CSS
Claimed on readmehigh confidenceechocare/next.config.mjs:1— Next.js config presentechocare/tailwind.config.ts:1— Tailwind CSS configuredechocare/tsconfig.json:1— TypeScript project configuration; app code is entirely .ts/.tsx
Real-time voice transcription displayVerified
Transcribes conversation between user and Vapi echo agent
Claimed on Devposthigh confidenceechocare/app/components/Transcriber.tsx:16— Renders conversation array with animated word-by-word transcript displayechocare/app/hooks/use-vapi.ts:88— 'message' event with transcriptType final appends to conversation state
Restaurant food donation tracking with Neon PostgresVerified
Restaurants track and donate leftover food via an inventory tracker backed by Neon DB
Claimed on readmehigh confidenceechocare/app/actions.ts:2— Uses @neondatabase/serverless to create/insert/query a food_donations tableechocare/app/businesspage_side/page.tsx:7— Business page calls addDonation/getDonations and renders donation cards
Three.js 3D graphics for Echo assistantVerified
Three.js used for 3D graphics, Echo has 3D graphics built in
Claimed on readmehigh confidenceechocare/app/components/glob.tsx:3— Imports THREE, builds a WebGLRenderer, IcosahedronGeometry and ShaderMaterial for an animated sphereechocare/app/landing_page/landing_page.tsx:200— AbstractBall (the Three.js component) rendered on the landing page
Turn-by-turn directionsVerified
Real-time search functionality helps users find services with directions
Claimed on Devposthigh confidenceechocare/app/hooks/use-vapi.ts:149— getDirections calls Google Directions API and returns distance/duration/stepsechocare/app/components/Transcriber.tsx:71— handleGetDirections invokes getDirections and displays step-by-step directions
Voice AI assistant (Vapi 'Echo')Verified
Vapi.ai used to create a voice assistant that users interact with via voice input
Claimed on readmehigh confidenceechocare/app/hooks/use-vapi.ts:16— Vapi client instantiated with public key and assistant ID, wired to call-start/call-end/message eventsechocare/app/landing_page/landing_page.tsx:45— useVapi hook consumed and toggleCall wired to a mic button
Aceternity UI landing page componentsCode-supported
Aceternity UI used for a clean landing page look
Claimed on readmemedium confidenceechocare/app/components/ui/RainbowButton.tsx:1— Custom UI components matching Aceternity UI patterns (RainbowButton, Ripple, moving-border, background-gradient) exist, though no aceternity-ui package dependency was found
Vercel Postgres for Neon connectivityCode-supported
Vercel Postgres used to communicate with Neon DB
Claimed on readmelow confidenceechocare/package.json:18— @vercel/postgres is listed as a dependency, but actions.ts imports @neondatabase/serverless directly rather than @vercel/postgres
Deepgram encodingClaimed only
Deepgram used for encoding
Claimed on Devpostmedium confidenceCartesia hyper-realistic voiceBlocked
Cartesia provides hyper-realistic voice service for users
Claimed on readmelow confidenceGroq 70b fine-tuned model assisting VapiBlocked
Groq 3.1 70b versatile (fine-tuned) assists Vapi.ai with insights
Claimed on readmelow confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.