AeroSports
Self-service player registration system using MAUI kiosk tablets and a hosted Next.js interface with NFC wristband scanning.
Form Factor
Tablet kiosk system
Runtime
MAUI Android wrapper
UI
Next.js hosted interface
Hardware
NFC wristband registration
Experience
Self-service onboarding flow
Grouped by the primary systems, languages, and infrastructure used in this build.
Frameworks
.NET 9 Android, MAUI, Next.js
Libraries
MAUI, React, WebView
Languages
C#, JavaScript, CSS
Hardware
Android tablet, NFC
Supporting Systems
Backend
AeroSports
Self-service player registration system using MAUI kiosk tablets and a hosted Next.js interface with NFC wristband scanning.
Form Factor
Tablet kiosk system
Runtime
MAUI Android wrapper
UI
Next.js hosted interface
Hardware
NFC wristband registration
Experience
Self-service onboarding flow
Tech Stack Overview
Grouped by the systems, languages, and supporting layers used in this project.
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 peri...
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 documen...
Installing and configuring the application on each tablet was also timeconsuming. Each device required: Proper documentation became essential so th...
At one point we questioned whether MAUI was the best framework for the job. However, research showed that mobile development itself is generally ti...
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 technologies
Supporting technologies