Inspiration

Getting to the mountain can be one of the most expensive and inconvenient parts of skiing or snowboarding, especially for students and people who do not own a car.

Public transit options to ski resorts can be limited, while driving alone means paying for gas, parking, and other travel costs. At the same time, many drivers head to the mountain with empty seats.

Ski Car Pool was created to connect those two groups: drivers already making the trip and riders looking for an affordable way to get there.

What it does

Ski Car Pool is a carpooling platform designed specifically for ski and snowboard trips.

Drivers can create rides by providing information such as their departure location, destination, departure time, available seats, and trip price.

Riders can browse available trips, find rides heading to their desired ski resort, and request a seat.

Drivers can then review incoming ride requests and accept or reject passengers.

Users can also manage their profiles and view their upcoming and previous trips.

The goal is to make getting to the mountain cheaper, easier, and more social while helping drivers share the cost of trips they were already planning to make.

How we built it

How we built it

We built Ski Car Pool as a full-stack web application.

The frontend was developed using React, TypeScript, and Vite, creating the interface for searching rides, creating trips, managing requests, and viewing user information.

The backend uses Node.js and Express to provide REST API endpoints for authentication, profiles, rides, and ride requests.

Supabase provides our PostgreSQL database and authentication infrastructure.

Our main data model revolves around three core entities:

Profiles — user information connected to authenticated accounts

Rides — trip information including driver, destination, departure time, available seats, and price

Ride Requests — connects passengers to rides and tracks whether requests are pending, accepted, rejected, or cancelled

Challenges we ran into

One of the biggest challenges was connecting all parts of the application together.

A ride-sharing platform has relationships between users, rides, and ride requests, so we had to think carefully about how information should move between the frontend, backend, authentication system, and database.

Authentication was another challenge because actions needed to depend on the currently logged-in user. For example, only a driver should be able to manage requests for their own ride, while passengers need to be able to track the status of requests they have submitted.

We also had to design the application so that the UI stayed synchronized with changes in the database as users created rides and responded to requests.

Accomplishments that we're proud of

We're proud that we were able to turn a simple idea into a functioning full-stack application rather than only building a static prototype.

We implemented the core workflow of a carpooling marketplace:

Create a ride → discover a ride → request a seat → review the request → accept or reject the passenger.

We also created persistent user accounts and trip data using Supabase and built a backend API rather than having the frontend communicate directly with hard-coded data.

The project gave us experience designing an application where multiple users interact with the same underlying data.

What we learned

This project gave us hands-on experience building a complete full-stack application.

We learned how to structure a React application, build REST APIs with Express, work with PostgreSQL through Supabase, and connect authentication with application-specific user data.

We also gained a much better understanding of relational database design. Features that appear simple in the interface—such as requesting a seat—require relationships between users, rides, permissions, and request states behind the scenes.

Most importantly, we learned how the frontend, backend, database, and authentication layer work together as parts of a single application.

What's next for Ski Car Pool

There are several features we would like to add to turn Ski Car Pool into a more complete platform.

Future improvements could include:

Interactive maps and pickup locations

Distance and route calculation

Driver and passenger ratings

In-app messaging

Notifications when ride requests are accepted

Resort-specific ride discovery

Improved search and filtering

Automatic cost splitting

User verification and additional safety features

Built With

Share this project:

Updates

Submission history