LibCal Cornell
Cornell study rooms can be unreliable to book and hard to find. The main tool that Cornell uses, LibCal availability grid, treats this as a data problem when it is really a decision problem. This project reframes booking as an easy mobile companion that helps students discover a space, get into it, and keep it from sitting empty, without replacing the reservation system underneath.
The problem isn't a shortage of rooms. It's that the good ones sit empty.
Cornell already has a working reservation system. What it lacks is a way to help a student standing in a library at 2pm answer a simple question fast, and a way to stop reserved rooms from going unused during the exact weeks they matter most.
Hidden system. Many students do not know the reservation system exists.
A one-sided trade-off. Canceling or ghosting a reservation costs the booker nothing, so they rarely bother. The cost lands entirely on the next student who couldn't get in.
Built for desktop. Website experience makes it hard for students to casually find a study room fast. It's not built for convenience.
Hard to compare. Students browse page by page to judge features, noise, equipment, and location, with no way to compare at a glance.
Two products, and both stop short of the actual student need.
Students use two things today: the official LibCal website and a third-party app called Booked. I audited each against the four problems above.
The availability grid is a spreadsheet, not a decision tool.
Every bookable room is a row in a dense matrix of thirty-minute cells. It is functional and information-rich, but it is built for a desktop analyst, not a student walking across the Arts Quad.
- A spreadsheet, not a decision tool. Every room gets equal visual weight, with no ranking or sense of which is best for you.
- The booking flow is hidden. Pick a cell up top, then scroll to a separate dropdown to set the end time. On a phone it is painful and unguessable.
- Color is an accessibility liability. Availability lives almost entirely in red versus green, with no icon or label inside the cell.
- It speaks the library's language. "Unavailable / Padding" is internal jargon; blank cells read as a broken page, not an intentional limit.
- Attributes are buried behind "Info." Whiteboards, monitors, noise, and light each require opening a separate panel, one room at a time.
- No spatial context. The system knows where every room is, yet offers no map, distance, walking time, or "near me."
The confirmation page is clean, and a dead end.
The one screen LibCal gets right is reliable: it clearly states location, space, date, time, and email. But as an experience it ends exactly where the student's real needs begin.
- No next action. No directions, no add-to-calendar, no invite, no check-in instructions, no visible way to modify or cancel.
- It does nothing about empty rooms. This is the moment to set the "claim your reservation" expectation.
- A stopping point, not a handoff. Confirmation should start a short journey: navigate, arrive, check in, study, release. Here it just ends.
A mobile wrapper is not the answer, and Booked proves it.
Booked is the closest thing to the intended product, which makes its failures the most instructive: a phone app that still hands off its one critical task is a directory, not a booking tool.
- Cards are a list of names, not a discovery surface. No capacity, availability, distance, equipment, or "open now."
- Identical placeholder art. Every room uses the same clip-art, so the images carry zero information.
- The core action is broken. Tapping to book ejects you to the LibCal website and forces a re-login.
- No map and no real-time status. Nothing shows whether a room is free, occupied, or opening soon, on an inherently spatial problem.
- Broken controls, weak hierarchy. Non-functional filter chips, ambiguous dots, low contrast, and no bottom navigation.
Design principles.
Each principle answers a specific failure above and keeps the reliable parts of LibCal intact.
Answer the question, don't show the data
Lead with "here is the best space for you right now," not a grid the student has to interpret.
Every card carries a decision's worth of info
Availability, distance and walk time, capacity, noise, and key equipment, visible before a tap, with real imagery.
Keep booking native, end to end
Discovery, booking, check-in, extension, and release all live inside the app. Never leads the user to the website.
Make it spatial
A map, distance, and wayfinding are the primary interface for someone deciding on the move.
Design for the moment of need
One-handed, glanceable, seconds-to-decision, not a desktop planning tool shrunk onto a phone.
Accessibility beyond color
Never rely on red and green alone; pair color with icons, labels, and shape, and expand the info LibCal already provides.
Treat confirmation as a beginning
Turn the receipt into a launchpad: directions, calendar, check-in, invite, modify, release.
Preserve what works
Keep LibCal's reliability, time limits, room info, accessibility data, and email confirmations. Improve the experience around them.
A mobile companion that maps to how students actually study.
Rather than replacing LibCal, the app layers discovery, flexibility, collaboration, and real-time decisions on top of the reservation system Cornell already runs. The features group into five areas that follow the student's real journey.
Discovery & decision-making
Smart filters (noise, capacity, monitors, outlets, 24-hour), an interactive campus map with walking directions, real-time room status, and recommendations by group size and preference.
Booking & access
Cornell NetID single sign-on so booking never leaves the app, flexible times, QR codes outside every room, and a Wallet pass holding the active reservation and its check-in code.
Utilization & accountability
The fix for empty rooms: QR check-in with auto-expiry if no one arrives, one-tap release when you finish early, a waitlist, and onboarding for the reserve-then-check-in model.
Timing & collaboration
Instant notifications when a preferred room opens, "leave by" reminders that combine reservation time with walking distance, invite-a-friend, and calendar-aware study times.
Insights & personalization
Historical analytics on busy periods across prelim and final season, plus a personal study history of hours, favorite locations, and patterns.
Real-time status
Bookable rooms derive live status from LibCal plus in-app check-in, no new hardware. Open seating can later layer in privacy-preserving occupancy sensors.
The system, the screens, and the flow.
The UI kit, the high-fis, and an interactive prototype.
Four core screens.
Discover, book, check in, and be in session.
Click through the flow.
Twenty-two features in all, rolled out in phases.
Version 1 ships the complete find, book, and show-up loop that changes student behavior. Later phases layer on intelligence and collaboration, and real-time status starts with data Cornell already has.
The core loop
Smart discovery, interactive map, real-time status, NetID sign-on, and QR check-in with auto-expiry, plus onboarding for the check-in model.
Reclaim rooms
Notifications, waitlist, one-tap release, extension suggestions, invite friends, and quick-access widgets and Wallet passes.
Intelligence & depth
Recommendations, ratings, shared booking, calendar integration, "leave by" reminders, analytics, and study history.
Redesign the experience, not the database.
The takeaway
This project grew out of my own frustration with booking study rooms, and honestly, out of my own guilt. I have no-showed too. I used to think of it like a small personal trade-off: if I skip a room I booked, I don't really lose anything. But that framing ignores the person who actually needed that space and couldn't get it. That externality is the real problem I wanted to solve. The deeper I got into designing this app, the more small, convenient ways to help students kept surfacing, and I genuinely hope to see it built for real one day.
Want to talk through the redesign?
Happy to walk through the interface audit, the no-show fix, or how each feature maps back to a real failure.