Skip to content
← All work
DeliveredMartial arts academy2026

971 MMA

The system the whole studio pivoted around.

Client · Nine Seven One Rising Mixed Martial Arts Sport Academy Location · Dubai, UAE
971mma.ae
971 MMA
971 MMA on mobile

The problem

The academy ran on a booking platform, a front desk and an access gate that had no knowledge of each other. Membership status lived in one system, entry was granted by a person recognising a face, and progression and attendance existed on paper, so retention signals were invisible and the front desk absorbed work that should have been automatic.

The approach

We scoped a core-first delivery: authentication, live membership status, gate check-in and class schedule shipped as one working spine before any secondary feature. The integration work, not the interface, was treated as the real project, and the QR design was hardened before a line of it was built.

Try it

Open it here.

A companion website redesign was produced alongside the application. The embedded preview below is that website build.

971mma.ae
Delivered
Served from this site so unpublished work stays explorable. Open full size

What was built

  • React Native and Expo member application for iOS and Android.
  • Accounts, storage and a realtime layer for gate verification, all under the academy's own control.
  • Live membership status, class schedules and instructor lists synced from the academy's booking platform.
  • Fraud-resistant check-in: the app requests a short-lived signed token from a server function, renders it as a QR pass with a visible countdown, and auto-refreshes it. The backend verifies signature and timestamp, rejects expired or replayed tokens, confirms active membership, then opens the gate and logs the visit.
  • Integration with the access terminals already installed at the academy, rather than replacing them.
  • Belt and rank progression with visual tracking, training and session history.
  • Rewards system with a points balance and real redeemable value.
  • Home dashboard with check-in streak, monthly session goal and digital member card.
  • Member and coach roles, with instructor-only filtering after an early build incorrectly surfaced all staff as coaches.

Services

Academy operating systemMobile applicationAccess-hardware integrationBooking-platform syncWebsite design & build

Stack

Native iOS and Android appWorks with your booking platformWorks with your door hardwareCustom build, you own it

The delivered app

Real screens from the member app.

Not mockups, captures from the application the academy's coaches and members use. Swipe through.

Academy feed , “Your mats, your people.”
Academy feed , “Your mats, your people.”
Coach mode , “Run class in seconds”, live session with check-in counts.
Coach mode , “Run class in seconds”, live session with check-in counts.
Roll call, present, late, absent, then Scan QR to confirm.
Roll call, present, late, absent, then Scan QR to confirm.
Belt review, training days, check-ins, stripe requirements, award.
Belt review, training days, check-ins, stripe requirements, award.
“Review & promote” , members ranked by readiness for the next stripe.
“Review & promote” , members ranked by readiness for the next stripe.
Stripe requirements, the BJJ curriculum, encoded.
Stripe requirements, the BJJ curriculum, encoded.
Coach announcements, targeted push to a class list or all members.
Coach announcements, targeted push to a class list or all members.
Coach dashboard, today's classes, 47 check-ins, promotion queue.
Coach dashboard, today's classes, 47 check-ins, promotion queue.

Inside the build

Inside it.

Academy site with the member app presented as the product, not an afterthought.
Academy site with the member app presented as the product, not an afterthought.
Mobile, the screen a member actually opens.
Mobile, the screen a member actually opens.

The detail that mattered

Why the QR is not just a QR

The obvious build encodes the member ID in a static QR code. We rejected it: a static code can be screenshotted and shared, which turns a paid membership into a shared key. The delivered design issues a short-lived signed token per pass, refreshes it on a visible countdown, and verifies it server-side against live membership before the gate responds. The same conclusion was reached independently by the academy's own IT contact.

Built against hardware, not around it

The access terminals were already installed and were not going to be replaced. The system was designed to work with them rather than propose a rip-and-replace, which is the difference between a project an academy can approve and one it cannot.

Start here

Tell us what is breaking.

Not a brief. Not a spec. One message describing the thing in your business that keeps costing you money.

Or email contact@victvest.com · Call +971 50 208 1105