Inspiration

As someone who’s always loved recreational sports but struggled to find organized local leagues as an adult, I saw a gap. Friends and I would spend hours scrambling to find teams or coordinate games—so I set out to build a platform that simplifies this for urban/suburban adults (21-45) across basketball, soccer, volleyball, and ultimate frisbee. The goal? Make it easy to connect with fellow players, build teams, and track competition without the hassle of mandatory accounts.

What it does

Local Sports League lets users browse leagues by sport, location, skill level, and schedule (no login required). Individuals can register as free agents to get matched with teams, while groups can create custom teams and join open leagues. It also displays league schedules, real-time standings, and post-game social events to keep the community connected.

How we built it

I started by mapping out core user journeys—from browsing leagues to creating a team—and designed the page structure (Homepage, League Directory, Team Builder, etc.) in Figma. I built the frontend with React/Bootstrap for a clean, sport-focused UI (using Deep Navy Blue, Vibrant Sport Orange, and Soft Teal for branding) and the backend with Node.js/Express to handle data logic. MongoDB stored league/team/player data, and AWS hosted the platform for scalability. I integrated geolocation APIs to power location filters and scheduling logic to auto-calculate standings (3 points for a win, 0 for a loss).

Challenges we ran into

The biggest hurdle was building the free agent matching algorithm—balancing preferred sport, availability, skill level, and team needs took multiple iterations to get right. I also struggled with ensuring the platform loaded quickly with all league/team data, so I optimized database queries and frontend rendering to cut load times. Another challenge was handling edge cases (e.g., full leagues, no leagues in a location) with clear, user-friendly error messages.

Accomplishments that we're proud of

I’m most proud of creating a seamless user experience—basic browsing works without login, which removes a major barrier for casual users. The team builder (3 simple steps: info → invite → join league) is intuitive, and the schedule/standings page auto-updates with game results to keep leagues organized. Seeing the platform pull together all core features (filtering, registration, team management) in a cohesive way was a huge win.

What we learned

I deepened my skills in API integration and algorithm design (especially for matching free agents to teams). I also learned the importance of user-centric design—testing with local recreational players helped refine filters and form fields to match real-world needs. Most importantly, I realized how critical edge case handling is for user trust (e.g., clear messages for full leagues or no available teams).

What's next for this project

First, I want to add a mobile-responsive design to make the platform accessible on the go. I also plan to build out a league organizer dashboard (for paid subscribers) to let organizers manage leagues more easily. Down the line, I’d like to add real-time chat for team communication and email reminders for games/social events—small touches that will make the platform even more valuable for the rec sports community.

Share this project:

Updates

Submission history