Back to Projects

UniRyde

A privacy-focused campus carpooling platform that helps students find others traveling their way, join shared rides, and coordinate privately through real-time messaging without sharing personal contact details.

Next.jsNext.js
Tailwind CSSTailwind CSS
TypeScriptTypeScript
Node.jsNode.js
Express.jsExpress.js
PostgreSQLPostgreSQL
Socket.IOSocket.IO
DockerDocker

Features

Problem

Students traveling between their university and similar destinations often have no convenient way to discover compatible carpool partners. Existing coordination methods can also require students to publicly post their contact information or share phone numbers with people they do not know.

Architecture

Uniryde uses a Next.js frontend backed by a TypeScript and Express.js API. PostgreSQL provides relational persistence with Prisma as the ORM, while Socket.IO powers private real-time messaging between users. Authentication is handled through JWT-based sessions stored using secure HTTP-only cookies, with refresh-token hashes persisted in the database. The application is structured around independent features such as authentication, carpools, requests, conversations, and messages.

Result

Built a focused campus carpooling experience where students can create rides, find compatible carpools, manage join requests, and coordinate privately without exchanging personal contact information. The relational data model also keeps users, carpools, memberships, requests, conversations, and messages connected in a structured way.

Learning

This project gave me deeper experience with relational database design, Prisma, custom authentication, secure cookie handling, session management, REST API design, and Socket.IO. I also learned how to structure a larger Next.js and Express application around independent features instead of keeping everything inside a single monolithic code structure.

Source Code

View on GitHub
Previous
Campus Career
Next
GenPalette