Self-service player registration system using MAUI kiosk tablets and a hosted Next.js interface with NFC wristband scanning.
Tablet kiosk system
MAUI Android wrapper
Next.js hosted UI
NFC wristband registration
Self-service player onboarding
Registration
The Registration Tablet System allows players to register their NFC wristbands themselves using tablets placed in the facility.
It combines two components:
The MAUI app runs in kiosk mode and displays the hosted Next.js page inside a webview.
Its primary role is to:
The Next.js application handles the player interaction and communicates with the backend API to store and retrieve player information.
This system allows customers to register themselves without requiring staff intervention.
The registration system runs on Android tablets using a MAUI wrapper that exposes NFC functionality while displaying a hosted Next.js interface in kiosk mode.
The registration UI is designed to be simple enough for players to complete themselves.
Players begin by entering their email address.
This email acts as the primary key for the player group.
The system checks if the email already exists.
If the email is new:
If the email already exists:
Each player entry has a scan button beside their name.
Players select the correct profile.
After selecting the player profile:
The MAUI application reads the NFC tag and passes the UID to the web interface.
The wristband is then linked to the selected player profile through the API.
After registration, the player is ready to use the wristband for gameplay.
The first version of this system was not tablet-based.
It was a WinForms desktop application that used a WebForms UI.
While functional, it had several limitations:
To improve the experience, we redesigned the system around tablets.
The new architecture included:
The tablet runs the MAUI application in kiosk mode, while the Next.js page provides the interactive interface.
This made the system easier to update because the UI could be changed centrally on the server without reinstalling the tablet applications.
This was one of the first Android applications used in the facility.
While MAUI development felt similar to WPF, there was still an adjustment period working with mobile-specific behaviors.
Turning tablets into proper kiosk devices was more difficult than expected.
We had to:
Once we successfully configured the first tablet, we documented every step so the same process could be repeated on additional devices.
Installing and configuring the application on each tablet was also time-consuming.
Each device required:
Proper documentation became essential so the process could be repeated quickly if devices needed to be reset or replaced.
At one point we questioned whether MAUI was the best framework for the job.
However, research showed that mobile development itself is generally time-consuming regardless of the framework, and the complexity we experienced was mostly due to the mobile ecosystem rather than MAUI specifically.
I was fully responsible for this system.
I chose to take ownership of the project because:
My responsibilities included:
The web portion of this system was also the first web application I built for the company, which later led to me being hired to build more web-based systems for the platform.
Core tools and technologies used in this project.
Core technologies
Supporting technologies