Inspiration

It's 10 PM, you're studying in the library, and you need an energy drink. Where's the closest one that's actually open? What does it cost? Can you pay with Dining Dollars? None of that is published anywhere. It only exists on shelf tags and vending machine labels around campus, so we went out and collected it ourselves.

What it does

TAMU Energize is an interactive map of energy drink prices in College Station.

  • On campus, each pin is a building where you can buy a drink. Open a building to see each vendor, its hours, its drinks and prices, and whether it takes Dining Dollars.
  • Open places come first, based on campus time, including hours that run past midnight.
  • Off campus, you can compare stores like CVS, Brookshire Brothers, H-E-B and Walmart, ranked by lowest price per can.
  • Filter and compare by brand, by what's open now, or in one sortable table of every drink. Near Me sorts by distance.
  • Report a price that looks wrong with one tap, and look back at your own reports.

It also surfaced things we couldn't have looked up. Bang and Celsius cost the same $3.50 on campus, but a Bang is 16 oz and a Celsius is 12 oz. Vending machines were 25 cents cheaper on Rockstar than the stores, but none of the machines we checked take Dining Dollars.

How we built it

The data: we traveled around campus and checked locations in person, visiting the MSC bookstore and vending machines, Aggie Express at the Commons and the Pavilion, and the vending machines in Zachry and Evans. Over two days we recorded 22 price observations across 6 vendors in 5 buildings, along with Dining Dollars acceptance. Every row in our published dataset records its source and whether we saw it in person.

The app: plain HTML, CSS and JavaScript with Leaflet and OpenStreetMap, hosted on GitHub Pages. We used an AI coding assistant during development.

The pipeline: a GitHub Action runs a Python script every six hours that connects to Snowflake, merges in our store data, and republishes the site. A Node script generates the CSV dataset from the same files the app reads, so the published data always matches the app.

Challenges we ran into

  • Keeping secrets out of a static site. A public website can't hold a Snowflake login, so instead of calling Snowflake from the browser, we run a scheduled job that writes a data file the site can read.
  • Snowflake authentication. Our key-pair login kept failing with an invalid token error until we found that the account's login name was different from its user name.
  • Comparing unlike products. A single can and a 24-pack can't be compared on sticker price, so we had to normalize prices per can.

Accomplishments that we're proud of

  • Building a dataset that didn't exist before, by going out and getting it.
  • Capturing Dining Dollars acceptance, which matters to students on a meal plan and isn't in any price list.
  • A live app that anyone can open on their phone, with no install and no server to maintain.
  • Publishing our dataset and methodology with clear labels showing where every price came from and what its limits are.

What we learned

  • Real-world data is messier than it looks, and even basic facts like opening hours need checking on site.
  • The cheapest option isn't always the most useful one: a student on a meal plan may not be able to use the cheapest machine.
  • Documenting a dataset's limits makes it more trustworthy.
  • A simple static site with a scheduled data job can go a long way.

What's next for TAMU Energize

  • Visit the remaining campus markets and off-campus stores in person, and repeat visits to track how prices change over time.
  • Record each vending machine individually, since machines in one building can differ.
  • Add a Dining Dollars filter, so students can see only the places they can pay with their meal plan.
  • Connect price reports to a shared sheet so students can help keep prices current.
  • Expand beyond energy drinks and to other campuses using the same collection method.

Built With

Share this project:

Updates

Submission history