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
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.
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.
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.
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.
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.
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.
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.
Internal Messaging
Gym staff communicate through a built-in messaging system, keeping operational conversations inside the platform rather than scattered across personal messaging apps.
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

Dashboard

Members

QR Check-In

Class Schedule

Member Profile

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