Simplifying Attendance Tracking for Public Libraries

LocalHop needed a better way for librarians to track event attendance; one that was powerful enough for large institutions but simple enough for small ones. As the sole designer, I created a dual-dashboard system that balanced both needs while adapting to our aging codebase.
Role
Product Designer
Timeline
3 two-week sprints
Product
Localhop
Outcome
Rolled out to all LocalHop clients, helping secure new contracts and reduce user confusion.
Overview & Challenge
LocalHop’s competitors already offered attendance tools. If we didn’t build something better (and fast), we risked losing potential contracts to our competitors.
This was my first project after joining LocalHop, and I was thrown right into a problem that had long frustrated our users and sales team:
Allow libraries to track attendance accurately, flexibly, and without creating more admin chaos?
Users
Librarians, event coordinators, and admins— basically anyone managing events on LocalHop
Goals
Track guest count in real time
Register individual or group attendees
View, edit, and export guest data
Search for patrons by name, email, or library card
Contraints
Needed to work well on desktop, tablet, and mobile devices
Had to hand-off in 6 weeks to meet proposal deadlines
Works well in our antiquated codebase
No in-product analytics (😭)
Research & Insights
I began my research by shadowing demo calls with Courtney (PM), and sending out surveys to get a pulse on how our users were feeling.
And as fate would have it, I discovered that some of the library responses from the survey were from the library literally down the street from me. So I put my UX pants on and headed to the library to see our product in action.
After seeing how events were managed first hand, coupled with my survey data and interviews, there seemed to be some three common issues that needed to be addressed:
🧠
Usability during a live event…
This feature needed to be easy to use while hosting a live event, while also being robust enough to handle various workflow types.
🧠
The need for registration…sometimes…
Many libraries needed full registration flows. Others just wanted a simple headcount.
🧠
Reporting accuracy = funding…
Libraries needed exportable data for state-level reporting. Missing reports could affect their budgets.
One Size Doesn't Fit All: Splitting the Dashboard in Two
At first, I designed a single, universal dashboard. Except, after testing it with users, it became clear that trying to please everyone would lead to confusion and usability issues.
🔁
Ideating through failure
Versions 1 through 3 had issues with clarity and usability. I thought the issue was a misalignment with our users’ mental models, but I quickly realized I was approaching this problem from the wrong angle.
Contemplating Solutions
Recognizing that a single dashboard couldn’t meet all user needs, I designed two distinct views tailored to the primary event types. This conditional approach enabled a more focused, user-centered experience for each scenario.
Dashboard 1
Non-Registrable Events
For simple head-counting and easy reporting, with added quality of life functionality that our competitors didn't offer 😉.

Dashboard 2
Registrable Events
For detailed check-ins, guest tracking and reporting. A much more robust management dashboard that could work for mid to large size events.

The idea of having the dashboard fit the event type let us keep things simple for small libraries, while still giving power users what they needed to host operationally heavy events.
✂️
Tradeoff
The conditional dashboard added more dev time than expected, but it was worth it to give users the experience they needed and then some.
Final Designs & Outcomes
After rounds of feedback and tight constraints, I delivered two streamlined dashboards tailored to different event types. Each interface was designed to meet the unique needs of LocalHop’s diverse library clients; whether they needed a quick headcount or full registration tracking.
Open Events Dashboard
Description
The idea of having the dashboard fit the event type let us keep things simple for small libraries, while still giving power users what they needed to host operationally heavy events.
© 2025 Matt Girardi. Thanks for scrolling. All rights reserved.