CLIENT: Pietrafina Studios🇮🇹Italy

Tessera - Membership, Class Booking and QR Check-In for a Gym Chain

Studio Console for an Italian Boutique Gym Chain

Designed and built a clickable staff console for a chain of 18 boutique gyms and studios in Italy: a studio dashboard with today's classes by room, a check-in desk that checks membership, payment and medical certificate before letting anyone in, member profiles and session rolls with waitlists, late cancels and no-shows.

Scope of Work
Product design, UI build and clickable demo
Industry
Fitness / Gym & Class Booking
HealthcareEnterprise
Compliance & Certifications
Codice del ConsumoCivil Code arts. 1341-1342GDPRCodice PrivacyPSD2 SCASEPA Core Direct DebitSdI e-invoicingD.Lgs. 36/2021WCAG 2.1 AAEuropean Accessibility Act

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, check-in desk, members list, member profile with 8 tabs and session roll. Each of the 52 demo members and 17 classes of the day opens its own page.

3 Outcomes
At every check-in

Welcome, Warning or Refused, with the reason. Rules run in a fixed order: frozen or ended membership, overdue payment, medical certificate, plan scope, then today's booking. An override needs a reason and is audited.

12h / 2h
Late-cancel cutoff on every roll

Free cancellation until 12 hours before a class, or 2 hours for classes after 12:00. The roll shows the cutoff, and bulk no-show opens 15 minutes after start.

52 Members
Realistic demo data

Members across 5 plans and every status, 17 classes in 3 rooms with 202 of 308 places booked, 8 instructors, 18 studios and a live feed of 26 check-ins.

The Problem

Pietrafina grew from 4 to 18 studios on a booking tool built for a single gym, a separate card terminal, paper contracts and a spreadsheet of medical certificates at each front desk. Members could not book at another studio on the same plan, waitlists ran on WhatsApp, popular 07:00 classes had 30% no-shows while people were turned away, certificates expired unnoticed and failed direct debits were chased by hand weeks later.

Our Solution

Tessera gives Pietrafina's members one app to join, book, check in with a rotating QR code and pay, and gives front desk staff, instructors and managers one console for the day's classes, check-ins, members, certificates and payments. The demo is the staff console for one studio, Pietrafina Navigli in Milano.

The Challenge: One Membership, 18 Studios, Italian Rules

A gym membership in Italy is a consumer contract, a health record and a payment schedule at once, and every check-in at the turnstile has to respect all three.

Contracts Under Consumer Law

Memberships sold online are distance contracts under the Codice del Consumo, with 14 days to withdraw. Onerous clauses such as tacit renewal need specific written approval under articles 1341 and 1342 of the Civil Code, and renewal reminders must go out before the notice deadline.

Medical Certificates as Health Data

Pietrafina requires a certificate for non-competitive sport from every member, generally valid for one year. It is special-category data under GDPR, so most staff should see only the expiry date and whether it was reviewed, and nobody should train with an expired one.

Payments That Fail Quietly

Cards need strong customer authentication when first saved, SEPA direct debits need a signed mandate and advance notice, and a payer can ask their bank for a refund within 8 weeks. Failed monthly payments were found weeks late, with no rule for when to block bookings or entry.

Classes, Instructors and Safety

Instructors are employees, freelancers with a partita IVA and sports workers under D.Lgs. 36/2021, and their hours were added up from class sheets. Each location must have a defibrillator and someone trained to use it, which nobody checked against the timetable.

Our Approach: From Membership Rules to a Clickable Console

01

Spec and Rules Research

Mapped 9 roles from member to data protection officer, 47 screens across the public site, member app and staff console, and the data model for studios, rooms, plans, contracts, sessions, bookings, waitlists, check-ins, certificates, payments and consents. Wrote down the rules the design follows: the Codice del Consumo, the Civil Code on onerous clauses, GDPR and the Codice Privacy, PSD2 and SEPA, SdI e-invoicing, the 2021 sports reform, AED duties and WCAG 2.1 AA.

02

Clickable Demo on a Production UI Kit

Built 5 key staff screens on a production dashboard kit: the dashboard with occupancy, KPIs and today's timeline by room, the check-in desk with scan area and live feed, the members list with status pills and filters, the member profile with certificate review, billing and consents, and the session roll with waitlist, walk-ins and no-shows. All actions run on local state.

03

What a Production Build Adds

The member app and public join flow, card and SEPA payments through Stripe or Adyen, Satispay, the Nexi in-studio terminal, a telematic cash register, SdI invoices, e-signature through Namirial or InfoCert, turnstile QR and NFC readers, wallet passes and a payroll export. Staff auth by role and studio, an audit log of contract, refund, freeze, override and certificate decisions, and the remaining console screens.

Why It Works: The Desk Knows Before the Member Asks

Check-In Explains Itself

Every scan shows Welcome, Warning or Refused with the reason, such as a certificate expiring on a given date or a payment overdue for 16 days. Refusals can be overridden at the desk only with a reason, and the live feed filters to the issues.

Today's Classes at a Glance

The timeline shows each class by room, coloured by fill: under 50%, 50 to 90%, over 90%, and full with a waitlist. Each class opens its roll, and the dashboard flags classes with no instructor or no AED-trained person on shift.

Certificates Gate Booking

Members cannot book or enter until their medical certificate is reviewed and valid. The sidebar counts certificates to review and those expiring this week, and the profile carries a review checklist to accept or reject each upload.

Payment Problems Have Stages

A failed payment opens a recovery case with the client's policy as example: retries and a pay link first, bookings blocked on day 7, entry blocked on day 14, suspension on day 30. The desk and the profile show the day, the stage and the next step, and card numbers and IBANs are never shown in full.

Related case studies

View all: Fitness & wearables
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab