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
- cursor
- etc
- react
- supabase
- typescript
- v0
Log in or sign up for Devpost to join the conversation.