Inspiration

As students at the University of Michigan, we oftentimes study at on-campus locations including the UgLi, Union, and LSA building. Through firsthand experience, however, we have found that our initial preferences for study spaces tend to already be filled up. Finding available study spaces is a hassle and can take up an unnecessary amount of time.

What it does

MSpace is an ML-powered application that provides real-time updates on the availability of prime study location spots across the UofM campus. Students can use MSpace to efficiently arrange their study schedules to make the most out of their limited time.

How we built it

MSpace is a web application divided into a front and back end. The front end is created with HTML/CSS/Javascript and the Jinja web template engine. On the left side of the interface is a list of common study buildings across campus, with a real-time update of the predicted level of busyness for each at the current moment. There is also a 5-star rating scale where users can input their holistic review on how they found the study space availability (and general experience, including noise/outlet availability/etc) at a particular location. This will later be used as training data for the machine-learning model. On the right side is a visualization of the heatmap of study space availability, powered by the Google Maps API.

On the back end, we designed an API using Flask and Python. It includes several endpoints to render the application and periodically receive the refreshed number of devices and user scores for each location. These updates are piped to the model and reflected on the front end according to the new insights.

Challenges we ran into

Our machine-learning model is trained on several key features, one of which is the number of devices connected at each study building. Our initial idea was to ping routers with ARP messages and receive granular information on the devices connected to each router on campus. We got this working with our local WiFi network, but faced challenges incorporating the same with MWireless. We found that U-M ITS had placed restrictions on their routers, so we have reached out to them to grant us access to this data. Additionally, the IP API we used to retrieve latitude/longitude coordinates from the IP addresses rate-limited us, which added an additional challenge.

For these reasons, we created synthetic data for the number of devices at any location according to a distribution we approximated through research on busy times for each location. This data was used to train the current machine-learning model. We plan to replace it once we obtain users (and hence user ratings) and talk with the U-M ITS Department. We hope they will help us attain granular floor-level detail about the number of devices connected at each of the study buildings.

Accomplishments that we're proud of

Firstly, we are proud of the intuitive and user-friendly web interface that makes up MSpace. The heatmap was a great addition that adds an easy way for users to visualize study spots across campus. Secondly, we think our strategy for obtaining the number of devices at each location was smart and efficient. Most importantly, we are proud of the idea for MSpace. We truly believe that this application will help students find study spaces more efficiently and save them time.

What we learned

Although we all have experience in web development and machine learning, attaining the number of devices at each building via routers was a big challenge, and we learned a lot about computer networking through it. From learning about ARP protocol and IP/Ethernet addresses to using frameworks such as Nmap and Scapy, we saw firsthand how to apply networking to a real-world app.

What's next for MSpace

We believe the future for MSpace is very exciting. As mentioned in the challenges section, there is a lot of room to improve the quality of data that powers the core machine-learning model behind the app. We also envision MSpace being expanded to all schools and universities. We believe MSpace will make the study experience for students much easier.

Share this project:

Updates