Inspiration
Getting around UCI is hard. The campus is huge, classes are back to back, and a 20-minute walk from Mesa Court to the Engineering Gateway can make you late. Plenty of students own scooters or bikes, but most of the time those rides are just sitting locked on a rack. Meanwhile, students without one are stuck walking to class. What if Anteaters could share rides with each other? That’s ZotRider, a peer-to-peer platform where UCI students can rent a scooter or bike from a fellow student, or earn money by listing their own.
What it does
ZotRider lets students sign in with their UCI Google account (only @uci.edu emails are allowed), browse nearby scooters and e-bikes, and book one for a specific time. Rides can be sorted by nearest or lowest price, filtered by type and price, and viewed as a list or on a campus map. Walking routes to each pickup and return spot help students find their ride easily. Owners can list their ride in a few quick steps, with a profile that saves their usual pricing, photo, and pickup/return spots so listing again takes only seconds. To protect privacy, the public listing only shows an approximate area; the exact pickup and return addresses are revealed only after the renter has paid. Each booking has its own chat and moves through a clear process: request → owner approval → Zelle payment → payment confirmed → pickup → return. Once payment is confirmed, the renter gets walking directions to the exact pickup spot. After the owner confirms pickup, the renter’s page automatically switches from “Way to pickup” to “Way to return” with directions to the exact return spot. Optional refundable deposits, double-booking prevention, ratings and reviews of owners and their rides, and a ride history round out the experience. Because every account is tied to a UCI ID, the history makes it easy to follow up if someone doesn’t return a ride or a deposit.
How we built it
We built the frontend with plain HTML, CSS, and JavaScript, and used Supabase as our backend for the Postgres database, authentication, file storage, and real-time updates. Login uses Google OAuth through Supabase Auth, restricted to UCI accounts. Every booking status change (approve, confirm payment, pickup, return, cancel) runs through a Postgres function, so the rules live in the database rather than the browser: for example, only the owner can confirm payment, and a paid booking can’t be cancelled. Row Level Security keeps each user’s data private, and exact pickup details sit in a separate table that only the renter can read after paying. Listing locations are stored as PostGIS points, and the map uses Leaflet with OpenStreetMap and OSRM for walking routes. Our team collaborated in real time using VS Code Live Share, with one teammate hosting the live server.
Challenges we ran into
Booking time conflicts were one of our hardest problems. At first, two renters could book the same ride for overlapping times, and a listing could show “Available” even when the chosen time was already taken. We now show which rides are booked and block overlapping requests. We also found that renters could cancel a booking after paying. Since Zelle transfers usually can’t be reversed, this could leave owners and renters arguing over refunds. We hid the cancel button after payment and made the database reject cancellations of paid bookings, so it can’t be bypassed.
Accomplishments that we're proud of
We’re proud that ZotRider runs on a real backend with real authentication rather than mock data. A full rental can go from listing to booking to payment to pickup to return to review, with every step enforced by the database.
What we learned
We learned that building a marketplace means thinking from two sides at once. Every feature had to make sense for both the owner and the renter, and many of our bugs only appeared when we tested with two accounts at the same time. We also learned that real-world limits shape the design: because Zelle can’t be reversed, we had to build trust into the flow itself, deciding exactly when money moves and when private details unlock. Finally, we learned to put important rules in the database instead of the browser, so the app stays fair even if someone tries to get around it.
What's next for ZotRider
ZotRider already lets verified UCI students list rides, set an optional deposit, and message each other to arrange pickups. Next, we can deploy it publicly so students can use it from any device. We’ll add push and email notifications for approved bookings and due-back times, plus in-app payments so renters never have to leave the app to pay. To make lending feel safe, we’re adding damage reports with before-and-after photos at pickup and return, built into our existing chat. We’ll also add multi-day booking and a booking cart, so students can rent for a weekend or reserve several rides in one checkout, and we’re exploring auctions and offers for long rentals and busy times like finals. Beyond that, we’ll add more specific features like a map of campus no-ride zones, plus an earnings dashboard for owners. Our goal is for every Anteater to have a ride when they need one, and for every idle scooter and bike on campus to earn money.
Log in or sign up for Devpost to join the conversation.