CRM · Operations & mobile
Gym-chain CRM with QR check-in and a member app
A back office for a multi-branch gym chain — memberships, QR check-in, front-desk payments with fiscal receipts, payroll and reports — plus a mobile app for members.
- Role
- Lead engineer · near-solo build of the CRM, mobile app
- Years
- 2026
- Platforms
- Admin panel · iOS & Android · API
- My share
- ~92% of commits
The challenge
Front desks need speed and zero mistakes with money: check members in, sell and freeze plans, print receipts, close the register — across branches. Members want their plan, history and QR in their pocket.
How I solved it
- 01
QR check-in that toggles in/out with per-branch tokens that can be regenerated, and automatic check-out at closing.
- 02
Ordered, non-overlapping scheduled jobs (unfreeze → expire → activate), so plan states never conflict.
- 03
SMS retries only on connection failures — a member never receives the same code twice.
- 04
Thermal receipt printing over the network and fiscal receipts with per-branch device pairing.
- 05
QR posters with web links that open the app or fall back to a web page.
What it does
- Plans and subscriptions with freeze, cancel and trainer change
- Live occupancy and check-in heatmaps
- Cash register with deposits, withdrawals and daily close
- Trainer and staff payroll, including prorated and reversed payments
- Revenue, growth and staff-performance reports with Excel export
- Push campaigns, announcements and force update in the app
Results
- Of commits authored
- 92%
- API routes
- ~135
- Scheduled jobs
- 11
- Test files
- 31
- I authored 92% of the CRM's commits
- 31 test files and a documented release process
- One platform for members, front desk and management
Stack
- Laravel 13
- PHP 8.3
- React 18
- React Native 0.84
- Zustand
Integrations
- Fiscal receipts
- ESC/POS printers
- SMS
- Firebase
- VisionCamera
Details, names and visuals are generalised to respect client confidentiality. Happy to walk through the architecture in a call.
Have a product in mind?Let's build it.
Tell me about your idea, your product or your team. I usually reply within one working day.