FitRoom Experience — 健身房网站与会员平台
项目概述
FitRoom Experience 既需要一张对外的面孔,也需要支撑生意运转的软件,于是这个站点两者兼具。前台是一张双语单页——hero、十一项服务、实时周课表、关于区块与联系方式——外加一个会员页,承载着从经营者印刷价目表照搬来的二十种套餐与九项优惠。登录之后,会员无需自设密码即可注册,从可向前推进整整一个季度的课表中预订,课满时进入候补名单,设定一条会自我续期的固定每周预约,查看已付与欠款,并可导出或删除自己的数据。经营者拥有十七个后台界面:客户、套餐、课程类型、排程、停课、优惠、页面内容、会员卡、收款、欠款及其账龄、点名册、供门口平板使用的签到终端、带重发功能的邮件日志,以及统计——营收、上座率热力图、按课程族群的出勤、即将到期的会员卡与 CSV 导出。十九套双语邮件模板跑在内置的 PHPMailer 上,带重试退避。底层是纯 PHP 8.5 搭配 MySQL 的四十四张表,以希腊语为准语言:没有框架,没有 Composer,没有构建步骤。
挑战
健身房课表不是日历。一节课有容量、有候补名单、有支付它的次数额度,还有可能取消它的停课安排,而经营者需要这一切都出现在她本就在用的那一块屏幕上。此外,旧网站上有 158 名会员,必须从第一天起就能登录。
解决方案
额度、预订与金钱是一个模型而非三个:取消一节课会连同它的账目一起带走,退款则会顺带完成作废。周期性预订的窗口由预订视野推导而来,而不是单独的一项设置,因此两者不会各走各的。旧密码以包装形式迁移而非明文存储,原有会员无需重置即可登录。希腊语为准语言,每一次客户搜索都会折叠重音与词尾 sigma,让一个名字无论怎么输入都能被找到。
图片集

首页——先看场馆本身,再给出两条入口

服务 — 十一项课程,从临床普拉提到自由训练

场馆——六张照片,先看看您将在哪里训练

周课表——一张网格看完整周,每节课都写明预订方式

仅限电话预订的课程——点一下,就知道怎么订、打给谁

关于——课时、时长,以及背后的两位教练

希腊语版——同样的欢迎,用健身房的第一语言

会员方案——所有套餐一览,价格只对会员显示

首页——场馆照片在平板上占满整个高度

服务——每项课程都有编号,一两行就讲清楚

希腊语为准语言 — 同一张课表,另一种语言

关于 — 场馆背后的数字

会员注册 — 无需在入口自设密码

首页——为手机重新排版,两个按钮正好落在拇指下

菜单——所有板块和登录入口,收进一块深色面板

场馆——通栏照片,一处一处慢慢看

课表——按天排列,每一行都能预订

仅限电话预订的课程——预订电话,轻点即拨

教练——第一节课之前,先认识人和资历

会员方案——会员登录后,所有价格随即显示





