Case StudyWeb AppSaaS Platform2025 – Present

OTRUP Gym Console

A full-stack gym management web platform replacing spreadsheets and clipboards with a real-time dashboard, QR check-in, class scheduling, billing, and a dedicated trainer portal. All in one product.

Visit OTRUP
OTRUP Gym Console real-time analytics dashboard showing member activity, revenue, and attendance

3 roles

Owner, Admin, Trainer

< 2 sec

QR check-in to logged entry

Real-time

Live dashboard & notifications

8 modules

Dashboard to shop

The Problem

Gyms were running on spreadsheets, paper, and guesswork.

Most small-to-mid-sized gyms manage their operations through a patchwork of disconnected tools: spreadsheets for member records, paper sign-in sheets for attendance, group chats for class scheduling, and manual invoices for billing. The result is predictable: members slip through the cracks, attendance data is unreliable, and owners have no real visibility into what is happening in their business.

Trainers had no dedicated portal to view their schedules, manage sessions, or request substitutes. Billing chases were manual and error-prone. Gym owners with multiple locations had no way to oversee them together. There was no single source of truth for anything.

OTRUP Gym Console was built to close all of these gaps. One platform that gives owners a command centre, staff the tools to do their jobs, and trainers a purpose-built portal, all tied together with real-time data and role-based access.

What We Built

Eight modules. One cohesive platform.

01

Analytics Dashboard

The moment an admin logs in, the full picture is there: member activity, attendance trends, revenue metrics, and class utilisation, all in one place. An alerts strip surfaces what needs attention today: memberships expiring in 7 days, unpaid balances, low shop stock, pending substitute requests, and team invites, each linking directly to the relevant filtered page.

02

Member Management

Every member has a complete profile: personal information, membership plan, payment history, attendance log, and a unique QR code. Admins can search, filter by status, add new members, upgrade plans, and record payments in seconds. A global search across the entire console makes any record findable instantly.

03

Class Scheduling & Sessions

Classes, schedules, and sessions are managed from a single hub. Admins can create recurring schedules, set capacity limits, assign trainers, and view the week in a grid or the month in a calendar. Trainers get their own view of their assigned classes and schedules without access to unrelated data. Substitute requests are submitted and resolved inside the platform, with real-time badge counts in the navigation.

04

QR Code Check-In

Each member is issued a unique QR code. At the door, staff scan it with the device camera or enter the code manually. Either way, check-in is logged instantly and the entry feed updates in real time. The system also handles check-out: a second scan for someone already inside marks them as departed. Entry logs show who is currently in the gym at any moment.

05

Subscriptions & Payments

Membership plans are defined once and sold from the console. The payments screen gives a full transaction history with status (paid, pending, overdue) and a record-payment dialog for in-person collections. Overdue balances surface in the dashboard alerts, so nothing slips through.

06

Team & Role Management

Staff accounts are created with a granular capability system: each admin or receptionist holds only the capabilities they need (check-in, view members, manage schedules, view payments, and more). Trainers are a first-class role with their own portal. Invites, pending requests, and permission changes are all handled in-app.

07

Internal Messaging

Gym staff communicate through a built-in messaging system, keeping operational conversations inside the platform rather than scattered across personal messaging apps.

08

Notifications & Real-Time Updates

A persistent WebSocket connection keeps every open session in sync. Check-ins, substitute requests, new messages, and billing events propagate instantly, with no page refresh needed. Notification counts appear live in the sidebar navigation.

Product Screens

Built for the front desk and the back office

OTRUP gym console analytics dashboard with revenue and attendance charts

Dashboard

OTRUP member directory with search and membership status

Members

OTRUP QR code check-in page with camera scanner and entry log

QR Check-In

OTRUP class scheduling hub with weekly session grid

Class Schedule

OTRUP individual member profile with QR code and payment history

Member Profile

OTRUP payments screen with transaction history and status

Payments

Technical Approach

Real-time by design. Role-aware throughout.

The platform maintains a persistent WebSocket connection via STOMP.js, so check-ins, schedule changes, messages, and billing events propagate instantly to every open session without polling. For a gym environment where a staff member at the door needs to know within seconds whether a member's subscription is valid, this was a deliberate architectural choice.

The QR check-in pipeline uses html5-qrcode to access the device camera and decode member tokens in real time. Validation happens server-side, and the entire flow, from camera feed to logged entry, completes in under two seconds. Manual code entry via keyboard is supported for wedge scanners and accessibility.

Role-based access is baked into every layer: routing, data fetching, and UI rendering. Owners see everything. Admins hold only the capabilities assigned to them. Trainers see their own schedule, their own classes, and nothing else. TanStack Query handles server state with automatic caching and background refetch; Zustand manages lightweight client state without boilerplate.

Frontend

Next.js 16

React 19

TypeScript

UI & Styling

Tailwind CSS

Radix UI

Recharts

Data & State

TanStack Query

Zustand

Axios

Real-Time & QR

WebSockets (STOMP.js)

html5-qrcode

The Result

A platform that replaces five tools with one

OTRUP Gym Console eliminates the spreadsheets, the paper check-in sheets, the group chats, and the manual invoices. Gym owners get live visibility into their business from anywhere. Staff have a clear, role-appropriate interface that shows them exactly what they need. Trainers manage their schedules and substitute requests without back-and-forth.

Going from a paper sheet to a two-second camera scan with an instant entry log is the kind of change that gym staff notice on day one. The rest of the platform compounds that: every decision an owner makes is now backed by real data, not a best guess.

Building a SaaS platform or operations tool?

OTRUP Gym Console is proof that we can take a complex, multi-role operations product from idea to production. If you are building something similar, whether that is a management platform, an internal tool, or a SaaS product with multiple user types, we know exactly what it takes.

Start a Project