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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

Designed and built a clickable employee app for a Polish employee-benefits company's step and activity challenges: team and solo challenges where every activity converts to points, leaderboards where each person chooses how they appear, prizes with payroll tax notes, charity goals and a fair-play check before anything is won - while the employer only ever sees aggregates.

Designed and built a clickable trainer web app for a US coaching platform: a dashboard of who needs attention today, a client roster with adherence trends, a client record with PAR-Q+ screening and programming holds, a check-ins inbox against a 48 hour response target, and Stripe payments - keeping the product on the coaching side of the line with medical care.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
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
Enterprise Software Engineering - Human + AI
Contact Us
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