Inspiration
The datathon is inside the Memorial Student Center, and the building directory is still a set of wall boards. A visitor who needs an elevator, a lactation room, a quieter hall, veteran support, food, or a printer has to read three floors of marker numbers and guess which printed name matches the words they actually use. Copy Corner does not say "printer." We wanted a search over that directory that stays inside what the boards record.
How we built it
On 7 November we photographed the boards for the Lower Level, Level 1, and Level 2, then transcribed them by hand into places.json. That copy is the source of truth: 46 places, 15 on the Lower Level, 18 on Level 1, and 13 on Level 2. Category labels and search tags were added by the team so a query such as "printer" or "haircut" can find a sign that never uses those words. Those fields are not official MSC names, and the app says so.
One script rebuilds the analysis tables from that copy: one row per marker, one row per search tag, one room number per printed range, and a link when the same name is printed on another floor. Nine printed room lines expand to 50 room numbers. L400's stays unexpanded, because filling it in would mean inventing rooms. A second category code, read from the printed name alone, agrees with our label on 35 of the 46 rows. The other 11 are interpretations.
The site is a Python standard-library server and a static page. Search matches the transcribed text and the team tags. With step-free floors on, a floor change says take the elevator. The live view moves between the three floors and names the marker. Larger text, higher contrast, and read-aloud are on the same page. A second page draws the dataset counts. Gemini can make a second reading of the same photos for comparison. MongoDB Atlas can hold the places for search. Neither one replaces the hand copy.
Challenges
The photographs are angled shots of wall boards, not floor plans. They support a floor and a marker number. They do not support a hallway, a distance, a left turn, hours, noise, or which rooms inside a floor are step-free. The walking graph stays empty until a floor is digitized and a real walk is timed, so the navigator refuses to draw a path it cannot justify.
The same printed name on two floors, such as the Food Court, is two rows. Level 1 marker 16 is blank on the board and is absent on purpose. Nursing is only the Lactation Room, marker 4 on Level 1, and printing is only Copy Corner, marker 19. Bethancourt Ballroom is marker 12 on Level 2, and that floor has no food listing, so a meal during an event there is a floor change. Keeping those limits in the product was the hard part. A smoother route would have been a guess.
What we learned
A directory becomes a dataset only after every added field is labeled as a transcription or an interpretation. Search quality came from the tags, and trust came from declining to speak where the boards are silent. Step-free, in this project, means use the elevator between floors. That is the whole claim.