Inspiration

Every BU student knows the gap between classes: 50 minutes, a backpack, and the question of where to go. You walk to Mugar and every seat is taken, or reach the dining hall just as lunch closes. The information exists, scattered across hours pages and your own calendar, but nothing puts it together into one answer: what actually fits in the time I have?

What it does

BU-sy turns a free window into a plan. You say how long you have and what you want to do (study, eat or work out). BU-sy suggests a campus spot that fits, and shows the timeline: when to leave, how long the walk is, and how long you actually get to study, eat or work out.

Busyness at a glance: a small crowd icon (one, two or three people) with the level in words and how full a place is, plus an hour-by-hour chart of today and the quietest time left. Real hours: building and meal-service hours come from BU's official pages. Unverified hours are never shown as "Open now". Your schedule: import your class calendar (.ics) and BU-sy finds your free windows. Nothing leaves your device. From where you are: walking time is estimated from your location, on the device. Clubs: browse student clubs, check how busy it'll be at meeting time, join or waitlist, and add meetings to your schedule.

How we built it

App: a phone-first web app in plain JavaScript modules, installable and working offline, with a FastAPI backend for an optional server mode. Hosting: a static export deployed to GitHub Pages; every merge to main runs the tests and redeploys automatically. Busyness data: BU publishes no occupancy data, so we built a Python pipeline that simulates it from three open datasets. A university gym's head counts drive FitRec, room counts from a library at the National University of Singapore (ROBOD) drive Mugar, and Swiss university canteen sales (NOVANIMAL) drive the dining halls. Each is rescaled to an illustrative capacity. Calendars and maps: ical.js reads calendar files, and OpenStreetMap supplies building locations. People counter: a prototype that uses MediaPipe in the browser to count people crossing a line, without ever uploading video.

Challenges we ran into

No real data: the open datasets measure different things: purchases, not people, and one small room, not a whole library. Turning them into believable campus busyness, while being honest that it's simulated, took careful modeling and labeling. Hours are messy: dining halls publish meal times week by week, and libraries change hours by date. We checked the official pages and made the app say "unverified" rather than guess. Calendars are messy too: time zones, daylight saving, repeating classes and Outlook's own time-zone names all had to work. Five people, one codebase, one weekend: dozens of parallel branches meant constant merges. A bad merge once broke the phone layout, so we added automated CSS and browser checks that now block a broken deploy.

Accomplishments that we're proud of

Honesty built in: every place shows its data source, simulated values are labeled, and missing data says "No data" instead of a guess. Privacy by design: your calendar, location and camera are all processed on your device; there are no accounts and no uploads.

Accessibility: busyness is never shown by colour alone, screen readers get full labels, and animations respect reduced-motion settings.

A tested, live product: about 400 automated tests (Python, JavaScript and real-browser), with more than 50 versions shipped through continuous deployment. A minimalist redesign: you plan in one sentence ("I have 1 hr to study.") and get one clear answer.

What we learned

Showing "unknown" builds more trust than a confident guess: being transparent about data turned out to be a design problem as much as a data problem. Read the units and context before using a dataset: what was counted, where and when changes what the numbers mean. Teams need guardrails: tests and automated checks let five people move fast without breaking each other's work.

What's next for BU-sy

Real, authorized data: partner with BU to use aggregate counts it already collects (like FitRec's), and pilot our people counter with permission. Better walks: real walking routes, plus settings for walking pace and step-free routes. Student testing: user testing with BU students, plus accessibility and privacy reviews, before any claim of accuracy. More of campus: more buildings, verified amenities like outlets and quiet floors, and the new minimalist design across the whole app.

Built With

Share this project:

Updates

Submission history