Spots

Spots Image

October 2024
Next.js, Flask, Python, Mapbox
12000+ users in first week

Overview

Spots is a web application designed to help students at the University of Waterloo find open classrooms for studying. With traditional study spots often overcrowded, Spots leverages real-time data and geolocation to offer alternative solutions, ensuring students can find quiet spaces to focus.

After getting into a highly academic school like UWaterloo, I anticipated academic hardships, but I never expected myself to struggle to find physical study spots on campus. There have been multiple occurrences where I've wandered campus failing to find suitable spots. Traditional campus study spaces like libraries are often full and this lack of available spots leads to wasted time for students who need suitable working environments. Seeing this problem, I realized there was potential for a solution that could optimize physical resources on campus and help students get things done.

Classroom Availability
Based on class schedules, finds open time slots where students can use these spaces for studying.
Interactive Map
An interactive campus map displaying classroom availability with color-coded tags. It also has a location indicator to show nearby spots.

Building Spots

Architecture

Raw data was pulled from the UWaterloo Portal API. The flask backend performs some data manipulation to assign statuses and passes this to the frontend which is built with Next.js and Mapbox.

Architecture Image

Backend

The data from the Portal API was extremely bloated because it is a multipurpose API that has data for various activities and events. The backend extracts the necessary data and performs calculations based on call time to assign statuses. I also used the Haversine Formula to calculate distances from user position in order to sort buildings by location.

Frontend

For the UI, I decided on a two panel approach which highlights the map view while also providing all the data in a more natural list view. This approach is very natural for the user and is a good balance between form and function.

I also wanted the map to be interactive so I made the map markers clickable so that the data for that building expands on the left panel. To do this, I used Mapbox markers which allow me to add divs on top of the map based on coordinates. Since I had the coordinates for all the buildings through the Portal API, I was able to add these interactive dots on top of all the buildings.

Demo Image

Impact

Viral

Since its launch, Spots has received significant attention through social media platforms and thousands of students have used the platform! My goal with Spots was to reach and help as many students as I could and I am really happy that I was able to do so.

Twitter
As my second ever post on Twitter, Spots received nearly 5K likes, 300+ reposts, and 2K+ saves. I also gained 1K followers.
Linkedin
On Linkedin, Spots received 2.7K reactions and 25 reposts.

On top of these crazy statistics, the popularity of Spots led to so many cool people reaching out, helping me build my network. I was given the opportunity to interview at a handful of places and even got a few offers. I was even offered an internship by the CEO of Shopify himself, which I ended up accepting!

Social Media Highlights

I was even approached by the UWaterloo Portal team themselves to help revamp their current campus maps. I will be working with them starting in January 2025.

Clones

As mentioned, my goal was to reach as many as possible. Because of this, I decided to make the project completely open source on github. This led to many other talented students building clones of Spots for their own campuses. At the time of writing this, 6 schools now have Spots variants!

Clones

Takeaways

Spots exemplifies how technology can address real-world problems effectively. It's not the most technically impressive project, but its continued success demonstrates the power of identifying problems and building solutions to help make life more convenient.

I am incredibly grateful for the attention Spots has received, and it inspires me to keep building with even more enthusiasm.

Akshar Barot · 12/26/2024