Staff-facing WPF application for initializing, registering, renewing, and managing NFC wristbands and player records through the backend API.
WPF desktop app
NFC wristband workflows
4 core operational pages
Staff-side player management
API-driven database access
Pos Icon
The POS & Wristband Management system is a .NET WPF desktop application used by staff to manage NFC wristbands and player records.
It was originally built for one simple purpose:
Over time, it evolved into a much more capable operational tool.
Today, it is used to:
It communicates with the backend through the API and serves as one of the main staff-facing operational tools in the facility.
The POS runs on the staff-side PC with an NFC reader attached. It reads and writes wristband and player data through the backend API and supports multiple operational workflows for registration, lookup, renewal, and initialization.
The POS includes 4 major pages.
The Register page allows staff to create player records and bind a new wristband to them.
Staff can:
It also supports family/group workflows:
This made it easier to handle real family registration instead of forcing separate isolated entries.
The Lookup page is one of the most feature-rich parts of the application.
It allows staff to:
This page turned the POS into more than a scanner tool - it became a practical management system for day-to-day staff operations.
The Renew page supports returning players who already have an old wristband.
Instead of entering all the information again, staff can:
This makes repeat visits much faster and more convenient.
The Initialize page supports fast preparation when staff are busy.
In this mode, staff can:
The player can then complete registration later using the registration tablet.
This created a faster fallback workflow during peak traffic.
The earliest version of the POS was much simpler.
It used to be:
Players then had to complete everything on the registration tablet.
That approach became insufficient as usage patterns grew more complex.
For events like:
the old flow created several problems:
There were also management limitations:
We moved the application to WPF and redesigned the interface using XAML.
This gave us:
This transformed the POS from a basic initializer tool into a proper staff operations system.
The first challenge was deciding on the architecture that would let both players and staff use the system efficiently.
We needed a workflow where:
That led to the initialization-first model, which became the base for the broader registration workflow.
As we added more features, the old data model and process assumptions were no longer enough.
We had to modify database structures to support:
One important goal was making the POS and registration system behave consistently so either one could be used depending on the operational situation.
Another challenge was changing the application into a WPF system.
This required:
One of my teammates had stronger WPF experience and suggested the shift. He helped significantly with:
That change ended up being the right decision because it made the application much easier to grow.
The new version was a major upgrade with many more features.
That also meant it could feel overwhelming for staff at first.
So the challenge was not just building it, but rolling it out properly.
We handled this by:
Once the tutorial and onboarding part was handled, staff ended up liking the new system and its capabilities.
I worked on the POS as part of the broader AeroSports software ecosystem and contributed to both the feature evolution and the operational workflow design.
My contribution included:
This project was also collaborative.
One of my teammates had stronger WPF experience and played an important role in helping complete:
Together, we turned the POS from a limited initializer into a much more capable staff operations tool.
Core tools and technologies used in this project.
Core technologies
Supporting technologies