We will be undergoing planned maintenance on January 16th, 2026 at 1:00pm UTC. Please make sure to save your work.

Inspiration We live in an era where we can video chat with someone across the ocean, yet we often don't know the person living right next door. We realized that every neighborhood is an untapped skill economy—full of experts, mentors, and tradespeople—but there was no marketplace to connect them.

We were inspired to redesign learning by transforming it into a mutual exchange. We didn't just want a classroom; we wanted a platform for skill bartering, where a retired piano teacher could trade lessons with a neighbor who knows how to fix a leaky faucet. Our goal was to break down the barriers of isolation and language, allowing neighbors to "pay" for knowledge with their own unique skills, making learning accessible and community-driven.

How we built it We built InterLink as a full-stack real-time application using Next.js 16 and React 19 for a responsive, modern frontend, and a Node.js/Express backend.

AI-Powered Reciprocal Matching: We utilized Google's Gemini model to go beyond simple keyword matching. The AI analyzes user profiles to identify mutual benefits, generating personalized "match explanations" that highlight the trade (e.g., "Sarah can teach you piano and specifically needs the pet sitting you offer"), making the connection feel fair and relevant.

Real-Time Translation: To truly democratize this exchange, we built a live translation engine using Gemini. It detects languages on the fly, allowing a Spanish-speaking mentor to barter skills seamlessly with an English-speaking neighbor.

Geospatial Privacy: We implemented MongoDB geospatial queries to find nearby neighbors for practical exchanges but added a "fuzzy location" layer to our models. This allows users to find help "near 5th Ave" without exposing their exact home address until they trust the connection.

Gamification: To incentivize the "barter," we built a custom scoring engine (+10 for connections, +20 for completed exchanges) that rewards users for actively contributing to the community pool of skills.

Challenges we faced Handling API Rate Limits: One of our biggest hurdles was managing the Gemini API rate limits while keeping the app responsive. We solved this by implementing a custom LRU (Least Recently Used) Caching System (aiCache.js) that stores generated match descriptions and translations, significantly reducing redundant API calls and latency.

Reliability vs. Real-World Chaos: We knew that for a demo (and real life), APIs can fail. We spent significant time building "Intelligent Fallbacks" where the system seamlessly switches to rule-based matching if the AI service becomes unavailable, ensuring the app never crashes during a critical interaction.

What we learned AI is a UX Tool, not just a Chatbot: We learned that Generative AI shines when it works in the background—sorting lists, explaining trade compatibility, and translating text—rather than just being a chat interface.

The Power of Reciprocity: In testing our "Emergency" and exchange features, we realized that people are more willing to ask for help when they know they can offer something in return. It reinforced our belief that the most powerful tool for a community is mutual reliance.

Full-Stack Resilience: Integrating WebSockets (socket.io) for real-time negotiation alongside REST APIs for AI tasks taught us a lot about managing state and asynchronous data flows in a modern React application.

+ 27 more
Share this project:

Updates