Inspiration

UniRide was inspired by a very real experience many students face when moving to a new city for university.

When I first arrived in a new city for my university, I didn’t know anyone locally and had no clear way to get from the airport to my apartment. The only way I managed was by reaching out to someone I had connected with on LinkedIn. If that one connection hadn’t responded, I honestly wouldn’t have known how to figure out the ride.That experience made me realize how difficult transportation can be for students who are new to a city, don’t own a car, or don’t yet have a local network.Even simple trips, like going to Walmart, grocery stores, or nearby places around the city, can become difficult to plan when you don’t have transportation.

At the same time, we noticed another pattern across campuses. Students already try to share rides, but the coordination usually happens through scattered WhatsApp groups, Discord chats, or social media messages. Important messages get buried, people miss updates, and plans become confusing or fall apart at the last minute and people frequently end up arranging transportation separately even when they are heading to the same destination.

For common student trips, like going to grocery stores, shopping areas, or the airport, this means several vehicles making the same journey, leading to unnecessary vehicle miles, increased traffic around campus, and avoidable carbon emissions.

UniRide simplifies ride coordination within the campus community. Students can easily post rides, find others heading to the same destination, and join trips in one place instead of relying on scattered group chats. Safety is a core part of the platform. By operating within a trusted university network, students coordinate rides with verified members of their campus community rather than complete strangers, creating a safer, more comfortable, and more sustainable way to travel together.

Our goal is simple: make shared, safe, and sustainable transportation the default for university students.

What it does

UniRide is a campus-focused ride-sharing platform that helps students coordinate transportation in one place instead of scattered group chats.

Students can:

  • Post rides by entering start location, destination, date, time, seats, and price.
  • Request rides when they need transportation and let other students (drivers) discover and offer rides.
  • Search and join available rides that match their destination.
  • Get AI-ranked ride matches (by shortest detour and route fit) when they request a ride.
  • View start points and routes on an interactive map for better trip clarity.
  • Choose precise pickup and drop-off locations from smart suggestions.
  • Coordinate with other participants through in-app chat linked to rides and requests.
  • Create ride details faster with voice-assisted input - ElevenLabs for speech-to-text and Gemini for natural language interpretation.
  • See estimated CO₂ saved by sharing rides and track their total impact over time.

How we built it

Frontend

We built the UI with Next.js 16 (App Router), React 19, and Tailwind CSS. The app is fully TypeScript. Maps use Google Maps. Location search uses address suggestions so users can pick precise start and destination.

Backend & data

All server logic lives in Next.js API routes. We use MongoDB Atlas for users, rides, ride requests, chat rooms, and chat messages, so data and CO₂ totals sync across devices.

AI & voice

Voice-based ride creation uses ElevenLabs for speech-to-text and Google Gemini for natural language interpretation (extracting location, date, time, seats, etc.). Gemini also powers AI-ranked ride matching (shortest detour, route fit), short explanations for the top matches, and distance/CO₂ estimation.

Maps & routing

The UI uses Google Maps to display start points, destinations, and routes. For driving directions we call OpenRouteService to get the actual route polyline and distance, then draw that on the map. CO₂ estimates use that distance when available, or a Gemini-powered distance estimate / heuristic plus a per‑km emissions factor.

Real-time chat

Chat is stored in MongoDB Atlas. We use Server-Sent Events (SSE) so new messages are pushed to everyone in the room without polling.

Challenges we ran into

Making AI feel reliable, not fragile

At first, Gemini and ElevenLabs were brittle. We had to harden the pipeline with correct models, better error handling, and a non‑AI fallback parser so voice input always returns something usable.

Aligning maps, routing, and matching

Getting “what the user sees” to line up across Google Maps, routing APIs, and matching logic was tricky. So we added validation, fallbacks, and a straight‑line backup to make sure the line on the map always connects the pins and still produces a usable distance.

Building fair, explainable matching

Designing the matching algorithm was more than just “sort by distance.” We had to define a clear notion of detour vs. shared route, encode it as a scoring function, and then layer Gemini on top to rephrase that into short, human‑readable explanations (“0 km detour”, “61% route fit”) that students can trust.

Accomplishments that we're proud of

Solved a problem we personally experienced - a challenge that I, my teammates, and many students face when trying to find reliable, affordable, and sustainable transportation around campus.

- Turned fuzzy voice into structured rides end‑to‑end

We went from “I need a ride from Olde Towne University Square to Walmart tomorrow at 2pm with 2 seats” to a fully filled ride form using ElevenLabs + Gemini, including locations, time, and seats.

- Designed matching that actually optimizes routes, not just filters

Our “matching” isn’t just keyword search; it scores rides by detour distance and shared route, ranks the top matches, and explains why they’re good (“0 km detour”, “61% route fit”).

- Made sustainability visible, not invisible

Every time a student joins a ride, we estimate how many kg of CO₂ they avoided and keep a running total next to their profile, turning an abstract “sustainable choice” into a concrete number.

What we learned

Real users > hypothetical features.

Starting from our own pain helped us prioritize features that actually reduce friction for students.

AI is powerful, but only when wrapped in guardrails.

We learned that LLMs and speech‑to‑text are not “fire and forget”: picking the right models, handling errors, adding heuristic fallbacks, and validating outputs (e.g., distances, dates, locations) are what turned ElevenLabs + Gemini from a cool demo into something students can rely on.

Maps and routing are surprisingly tricky in the real world.

We discovered how inconsistent different routing services can be and how important it is to validate geometry, fall back gracefully and keep the UI honest so the polyline, pins, and matching logic all agree.

What's next for UniRide

  • Launch dedicated mobile apps to make UniRide more convenient and accessible for students on the go.

  • Enable university email authentication so only verified students can access the platform, maintaining a trusted campus ride-sharing network.

  • Introduce in-app call features to improve safety and provide quick assistance when needed.

Built With

Share this project:

Updates