POST/api/v1/projects/vefuno-fit202 ACCEPTED · IN DEVELOPMENT

Vefuno Fit

Modeling membership, access, roles, and branch scope without coupling identity to a single gym or payment provider.

Vefuno Fit — product screenshot
// vefuno-fit-00.png — product screenshot
3
membership access scopes
Global
member identity across gym businesses
0
stored card details

#01 The product

Vefuno Fit is a web platform for gyms that run one or more branches. It covers membership, who may enter which branch, instructor operations, and member history. It is not a mobile app, and it does not take card payments.

A platform admin can approve or suspend a gym business. One business can operate multiple branches. Instructors are employees with explicit role and permission boundaries. Members have a global identity: phone-number deduplication blocks a second account for the same person, and one member can belong to several independent gyms. Membership history keeps active and cancelled memberships instead of overwriting what already happened.

#02 Access, classes, and payments

Membership scope is one of three: SINGLE_BRANCH, SELECTED_BRANCHES, or BUSINESS_WIDE. A business-wide membership can say whether branches opened later become accessible automatically. Access is evaluated when someone is scanned, not stored inside the QR. The check resolves the member from a QR or wallet identity, loads the active membership or package, applies branch scope, evaluates the entitlement, and returns an access result. When that entitlement changes, the QR does not have to change.

Gyms can record how a membership was paid — POS, cash, bank transfer, or other — as payment metadata. No card details are stored. Price visibility is configurable as PUBLIC, MEMBERS_ONLY, or HIDDEN.

Instructor work sits on the same permission model: weekly classes, attendance, private training sessions, and PT lesson pricing where the owner allows it. Cancellation, no-show, and credit or entitlement effects stay inside those role boundaries.

#03 Engineering

The domain runs Platform → Business → Branch → Instructor → Member. Identity is global and deduplicated. Membership is per business, branch-scoped, and historically preserved. Authorization is role-aware, so an instructor does not inherit owner controls.

Scan-time policy evaluation keeps the physical token stable while entitlement rules stay in the system that can see current membership, scope, and branch. Payment recording is deliberately not payment processing: the platform stores the method a gym already used, and nothing that would let it charge a card.

Want the full story behind this build?

POST /contact